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

Não muda de cor

<canvas width="600" height="400"></canvas>
<script>
   var tela = document.querySelector("canvas");
   var pincel = tela.getContext("2d");
   pincel.fillStyle = "grey";
   pincel.fillRect(0, 0, 600, 400);

   var cor = ["blue" , " red" ," green"];
   var defineCor = 0; 

   function desenhaCirculo(evento) {
        var x = evento.pageX - tela.offsetLeft
        var y = evento.pageY - tela.offsetTop;
        pincel.fillStyle = cor[defineCor];
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * Math.PI);
        pincel.fill();
    }

    tela.onclick = desenhaCirculo; 

    function mudaCor() {
            defineCor++

            if(defineCor >= cor.length); {
                    defineCor = 0;
            }

            return false;
    }

    tela.oncontextmenu = mudaCor;
</script>

Alguém pode me explicar o pq do código não funcionar como deveria?

2 respostas
solução!

Oi Anna...

Um ; estava em um lugar que não deveria.

Dentro da função mudaCor() você deixou um ; ao final da lógica if. Veja abaixo.

if (defineCor >= cor.length); {
    defineCor = 0;
}

Neste caso é só retirar esse ; que o código funcionará.

if (defineCor >= cor.length) {
    defineCor = 0;
}

Abraço.

Cara, como eu não vi isso antes? Obrigada Eraldo, de novo!!