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

Dúvida no IF

Por que eu não consigo colocar o IF antes da function, conforme abaixo?

<canvas width="600" height="400"></canvas>
<br>
Escolha uma cor <input type="color">

<script>
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);

    var desenha = false;
    var corAtual = document.querySelector('input');


 if(desenha) {
    function desenhaCirculo(evento) {


            var x = evento.pageX - tela.offsetLeft;
            var y = evento.pageY - tela.offsetTop;
            pincel.fillStyle = corAtual.value;
            pincel.beginPath();
            pincel.arc(x, y, 10, 0, 2 * 3.14);
            pincel.fill();
            alert(input.value);
            console.log(x + ',' + y);
        }
    }

    tela.onmousemove = desenhaCirculo;

    function habilitaDesenhar() {

        desenha = true;
    }

    function desabilitaDesenhar() {

        desenha = false;
    }

    tela.onmousedown = habilitaDesenhar;

    tela.onmouseup = desabilitaDesenhar;

</script>
3 respostas
solução!

Boa tarde, Lilian! Como vai?

Vc até consegue fazer isso que vc tentou, mas no final das contas esse código não vai funcionar como vc espera! Na realidade, o que vc deseja fazer é executar o código da função se o botão do mouse estiver pressionado, correto?

Se for isso mesmo, vc precisa fazer assim:

function desenhaCirculo(evento) {

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

Dessa forma, sempre que a função for chamada no momento que vc estiver movendo o mouse, o seu código irá verificar se pode desenhar na tela através do valor armazenado na variável desenha.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, minha aluna!

Ok, obrigada pela ajuda!

Por nada, Lilian! Sempre que tiver alguma dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!