Não consigo muda
Não consigo muda
<canvas width="600" height="400"></canvas>
<script>
var cor = ['blue','red','yellow','green'];
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.fillStyle = 'grey';
pincel.fillRect(0, 0, 600, 400);
function desenhaCirculo(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
pincel.fillStyle = cor;
pincel.beginPath();
pincel.arc(x, y, 10, 0, 2 * 3.14);
pincel.fill();
console.log(x + ',' + y);
}
function mudaCor() {
for(var i=0;i<cor.lenght;i++){
cor=cor[i];
if(i>cor.lenght){
i=0;
}
}
}
tela.onclick = desenhaCirculo;
tela.oncontextmenu = mudaCor();
</script>
Respondi nos comentários no código abaixo. São poucas alterações em seu código original. Copie e cole em seu editor, salve e carregue. Depois leia os comentários. E pode apagar tudo o que, em cada linha, está depois dos '//'
<canvas width="600" height="400"></canvas>
<script>
var cor = ['blue','red','yellow','green'];
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.fillStyle = 'grey';
pincel.fillRect(0, 0, 600, 400);
var i = 0; //acrescentar declaração da variável i para ser utilizada fora da function mudaCor também
function desenhaCirculo(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
pincel.fillStyle = cor[i]; //mudar para cor[i], ao invés de tentar usar cor[i] dentro do muda cor
pincel.beginPath();
pincel.arc(x, y, 10, 0, 2 * 3.14);
pincel.fill();
console.log(x + ',' + y);
}
function mudaCor() {
//for(var i = 0; i < cor.lenght; i++) { //este 'for' conta de 0 a 3, e depois que chegar em 4, volta a zero fica em loop contando de novo.
//cor = cor[i]; //como a variável 'cor' é do tipo array (com 4 valores neste caso), não dá pra atribuir a ela um valor apenas
i++ //acrescente apenas este incrementador, que vai fazer o i variar de 0 a 3. É só isto que a função precisa fazer
if(i > cor.lenght) {
i = 0;
}
//} tire este colchete que era do 'for'
return false; //acrescentar return false para que o navegador não exiba o menu ao clicar na tela
}
tela.onclick = desenhaCirculo;
tela.oncontextmenu = mudaCor; //tirar parenteses conforme explicado no video da aula 3 atividade 1. Assim mudaCor() não é chamada ao ser lida, mas sim ao ocorrer o click.
</script>