2
respostas

Por que não funcionou a definição da variável fora da função?

No código abaixo, por que não funciona definir a variável COR fora da função?

var paleta = document.querySelector("input");
var cor = paleta.value;

var desenha = false;

function desenhaCirculo(evento) {

    if(desenha) {
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;
        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * 3.14);
        pincel.fill();
    }
2 respostas

Para ser sincero, não sei qual linguagem você está usando exatamente, mas tente mandar essa cor, que você recebe do usuário pelo input, como parâmetro para a sua função desenhaCirculo.

var paleta = document.querySelector("input");
var cor = paleta.value;

var desenha = false;

function desenhaCirculo(evento, cor) {

    if(desenha) {
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;
        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * 3.14);
        pincel.fill();
    }

Dependendo da linguagem, pode haver uma declaração prévia dessa função

function desenhaCirculo(evento, cor) {

mais acima no seu código e você terá que especificar que ela tem dois parâmetros e que o segundo parâmetro é uma string.

Luís Henrique, muito obrigado pela sua resposta. A linguagem que estou usando é o Javascript. Tentei fazer a chamada da função desenhaCirculo, passando a COR como parâmetro, mas ainda assim não funcionou. Somente funcionou quando eu atribui - pincel.fillStyle = paleta.value; - dentro da função. Por que não funciona definir uma variável fora da função e passá-la como parâmetro a função?

Veja a seguir o código que funcionou, com a atribuição dentro da função:

Selecione a cor