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

não entendo onde esta a ligacao dessas variaveis var cores = ['blue', 'red', 'green'] var indiceCorAtual = 0; pois quando ele passa pincel.fillStyle = cores[indiceCorAtual]; como ele sabe que é blue se não nada ligando as duas variaveis;

5 respostas

Olá, Bruno, peguei apenas uma parte do código para explicar:

Sempre que um array (conjunto de valores) é declarado, cada item que o compõe automaticamente assume uma posição (=índice) dentro dele, começando sempre do 0 (zero).

Assim, neste exemplo:

var cores = ['blue', 'red', 'green']
var indiceCorAtual = 0; 

A variável indiceCorAtual começa com blue, já que essa cor corresponde à posição 0:

ITEMPOSIÇÃO
blue0
red1
green2

Então, nessa linha de código, indiceCorAtual = 0 = 'blue':

pincel.fillStyle = cores[indiceCorAtual];

Aí, a função "mudaCor" irá acrescentar uma unidade à essa variável:

function mudaCor() {

        indiceCorAtual++;

E, conforme o restante da instrução, cada vez que clicarmos, passará para a próxima cor.

Espero ter ajudado. Bons estudos!

sim isso eu entendo que no array cada elemento assume uma posição, só nao tava conseguindo entende como o programa entende que a variavel indiceCorAtual = 0 entende que esta trabalhando com o array de var cores = ['blue', 'red', 'green']. O programa entende automaticamente quando chamo indiceCorAtual que estou vinculando com o array cores? por que é a unica explicação que ta entrando na minha cabeça. por que tipo eu imagina que eu teria que utilizar assim: indiceCorAtual = cores ou algo do tipo.

Falamos isso para o programa quando declaramos esta linha:

pincel.fillStyle = cores[indiceCorAtual];

Dizemos para ele: "quero que a função pincel.fillStyle assuma os valores da variável cores (array), começando pelo que está na posição 0" (indiceCorAtual foi declarado como iniciando do 0, lembra?). Os "valores" do array, neste caso, são as cores.

Então, começaria assim:

pincel.fillStyle = cores[0]; --->posição 0 do array cores ---> cor do pincel fica 'blue'

Aí, a função mudaCor acrescenta uma unidade ao índice ao clicarmos:

pincel.fillStyle = cores[1]; --->posição 1 do array cores --->cor do pincel fica 'red'

E assim por diante.

ah agora entendi, não tinha prestado bem atenção a esse trecho do codigo pincel.fillStyle = cores[indiceCorAtual]; Muito obrigado pela ajuda!

solução!

Fico feliz, Bruno!

Não esqueça de marcar o tópico como resolvido.

Sucesso na sua jornada pelo mundo da tecnologia!