5
respostas

Qual o segredo? Ponteiro do mouse continua pintando, mesmo sem os botões pressionados...

Por acaso descobri esse detalhe mas não sei o motivo... O código é idêntico ao do professor. Experimentem manter o botão esquerdo do mouse pressionado e deslizem o mouse para o lado direito da "tela" cinza, passando por ela e indo até o final do monitor. Parem de pressionar o botão esquerdo e voltem com o ponteiro do mouse sobre a "tela" cinza. Ele continuará pintando a tela mesmo sem o acionamento do botão esquerdo...

Qual motivo pra isso? O código necessitaria de um break; em algum momento? Abraçossss

5 respostas

acho q seria necessário criar um codigo pra que caso o mouse saia da posição do canvas (600 ou 400) a variavel desenha se tornasse falso, realmente é um bug, mas vou testar isso aqui, estou na mesma aula tb kkk

Manda o código que você escreveu.

Ficará mais fácil de ajudar a identificar o erro.

Espero ter ajudado. Sucesso na sua jornada!!

<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;

    function desenhaCirculo(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);
    }

    tela.onmousemove = desenhaCirculo;

    function habilitaDesenhar() {

        desenha = true;
    }

    function desabilitaDesenhar() {

        desenha = false;
    }

    tela.onmousedown = habilitaDesenhar;

    tela.onmouseup = desabilitaDesenhar;

</script>

Então, testei.

Eu creio que seja porque o canvas pega as informações dos cliques só quando você está em cima da área estipulada para ele.

Se você sai de cima dessa área e solta o botão, o canvas não captura a informação de que você soltou o botão e, então, continua pintando, pq a última informação que ele tinha era de que você estava com o botão pressionado.

Espeto ter ajudado. Sucesso na sua jornada!!

Não sei se é isso Diógenes, mas faz muito sentido! Obrigadooo.