Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Função Anônima

Ola a todos!

No exercício é destacado que podemos usar a função anônima.

tela.onmousemove = function(evento) {

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

Reparei que nessa função ela leva um parâmetro,se tirarmos o parâmetro, e removermos também da variável pageX e pageY e deixar tudo como anônimo dentro da função, ela não roda.

Por exemplo:

tela.onmousemove = function() {

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

Porque essa função é obrigatório um parâmetro ?

Já que a variável desenha esta controlando o código ?

Muito obrigado!

2 respostas
solução!

O parametro do evento é preciso Marcelo para poder saber onde o desenho deve ser feito, perceba que você calcula o ponto do desenho baseado na localização onde o mouse passou. Entendeu?

evento.pageX é o ponto no eixo X onde o evento foi acionado, pageX sozinho se refere a que? Ela não tá relacionada a nenhum evento, objeto ou coisa do tipo, por isso o resultado vai ser indefinido e assim seu código para de funcionar.

Entendi Wanderson ! Obrigado!