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

Explicação de uma parte do código

<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 = cores[0];

    function desenhaCirculo(evento) {

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

    tela.onclick = desenhaCirculo;

    function mudaCor() {

        for(i = 0; i < cores.length; i++) {
            if(corAtual == cores[i]) {
                corAtual = cores[i + 1];
                alert(corAtual);
                return false;
                break;
            }
            if(corAtual == cores[cores.length -1]) {
                corAtual = cores[0];
                alert(corAtual);
                return false;
            }
        }
    }    

tela.oncontextmenu = mudaCor;

</script>

Esta foi a forma que consegui fazer o código funcionar.

Apenas fiquei com uma pequena dúvida. Por que dentro do for eu não consegui alterar a variável corAtual usando o var ?

No caso eu deixei sem o var porque percebi que funcionou, e com ele não funcionou, mas não entendi o porquê.

3 respostas

Fala Kenni, tranquilo?

Em qual linha exatamente você estava colocando o var?

solução!

Opa, boa tarde Kenni!

Quando vc usa var, vc está dizendo que quer criar uma nova variável, e como já existe uma variável declarada chamada corAtual, o código da erro.

Observe a diferença:

var corAtual = 'grey';

Estou criando uma nova variável corAtual , com o valor 'grey'.

corAtual = 'blue';

Estou alterando o valor de uma variavel já declarada, chamada corAtual, e lhe atribuindo o valor de 'blue'.

Espero ter ajudado :D

Entendi Heron. Muito obrigado!