Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] A cor fica parada no verde, não volta para o azul!

<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 cores = ["blue", "red", "green"]
 var corAtual = 0;
 
 var raio = 10
 
     function desenhaCirculo(evento) {

         var x = evento.pageX - tela.offsetLeft;
         var y = evento.pageY - tela.offsetTop;
         
             if(evento.shiftKey && evento.altKey) {
                alert("Só aperte um por vez, por davor!!")
             } 

            if(evento.shiftKey && raio + 10 <= 40) {
                raio = raio + 10;
            } 

            if(evento.altKey && raio - 5 >= 10) {
                raio = raio - 5;
            }

        pincel.fillStyle = cores[corAtual];
         pincel.beginPath();
         pincel.arc(x, y, raio, 0, 2 * 3.14);
         pincel.fill();
        
        console.log("posição do clique : " + x + ", " + y);
    
     }
     
     tela.onclick = desenhaCirculo;

     function mudaCor() {

         corAtual ++;
             if(corAtual >= cores.lenght) {
                 corAtual = 0;
             }
         
         return false;
     }
     
     tela.oncontextmenu = mudaCor;

 </script>
1 resposta
solução!

Oi, Leonardo, tudo bem?

O problema que você está enfrentando ocorre devido um erro de digitação no código que você forneceu. Na função mudacor() a palavra length foi escrita da seguinte maneira:

if(corAtual >= cores.lenght) {

Para corrigir basta alterar a escrita da palavra length, como mostro abaixo:

if(corAtual >= cores.length) {

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!