1
resposta

Dúvida na estrutura do código

Só mesmo uma dúvida em relação a estrutura e como o Javascript é executado. No código a função "onmovemouse" é escrita primeiro e depois as funções "onmousedown" e "onmouseup" são escritas alterando a variável "desenha" para true ou false. Uma coisa que não entendi muito bem ainda é a ordem de execução dos códigos em Javascript, pq uma vez que "onmoveouse" já foi executado para desenhar mas não desenha pelo fato da variável "desenha" estar falso, como que pode ser alterado para verdadeiro se não tem um laço de repetição ou algo do gênero?

1 resposta

Fala, Douglas! Tudo bem contigo?

Desculpe pela demora em dar um retorno!

Neste caso, o código possui um método chamado onmousemoveque espera receber uma ação do mouse. Você terá um código que ficará em "stand by constante" (só exemplificando) aguardando o movimento do mouse para desenhar.

O código "diz" o seguinte: "tenho um método que está aguardando o movimento do meu usuário. Se ele só mover o mouse sem clicar vou só ficar de olho nessa função que ele criou com a variável desenhar false, porém, se ele clicar com o botão esquerdo do mouse a variável será true, logo desenho conforme está dentro da função."

Resumindo, Douglas, o caminho que o código percorre vai depender do comportamento do mouse. Ele vai e volta dentro da função conforme o clique. Mas tudo isso por causa do método utilizado!

O bom amigo para ajudar nessas questões de comportamento e principalmente para encontrar erros, é o debbug dentro do navegador.

Clicando com F12 encontrará o console. Ao lado da aba console tem a aba sources. Nela, coloque um ponto de iniciação na linha em que quiser que o código comece a ser debbugado.

Imgur

Logo após isso, dê um refresh na página e começará o debbug.

Para acompanhar, clique avançando passo a passo e verá o caminho que o código percorre

Imgur

Esse exercício em específico não vai te ajudar muito, pois ele espera o comando do mouse e no debbug não é possível clicarmos no canvas e desenharmos enquanto debbuga, mas pegue um outro exercício que fez anteriormente e faça e esse teste! ;-)

Espero ter ajudado, Douglas!

Um abraço e bons estudos!