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

Trocando Bandeiras - Por que dessa forma não funciona?

Ao tentar fazer o exercício "Trocando Bandeiras", escrevi o seguinte código no final:

function desenhaBandeiraBrasil() {
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle="green";
    pincel.fillRect(0, 0, 600, 400);

    pincel.fillStyle="yellow";
    pincel.beginPath();
    pincel.moveTo(300, 50);
    pincel.lineTo(50, 200);
    pincel.lineTo(550, 200);
    pincel.fill();

    pincel.beginPath();
    pincel.moveTo(50, 200);
    pincel.lineTo(300, 350);
    pincel.lineTo(550, 200);
    pincel.fill();

    pincel.fillStyle="darkblue";
    pincel.beginPath();

    pincel.arc(300, 200, 100, 0, 2* 3.14);
    pincel.fill();
}


function desenhaBandeiraAlemanha() {

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'black';
    pincel.fillRect(0, 0, 600, 133);

    pincel.fillStyle = 'red';
    pincel.fillRect(0, 133, 600, 133);

    pincel.fillStyle = 'yellow';
    pincel.fillRect(0, 266, 600, 133);

}


setInterval(desenhaBandeiraAlemanha, 3000);
setInterval(desenhaBandeiraBrasil, 3000);

Só que eu percebi que, ao igualar o tempo das duas funções, a bandeira do Brasil fica sobreposta à bandeira da Alemanha. Por isso, acrescentei um leve desencontro, mudando o tempo da bandeira da Alemanha para 2800: setInterval(desenhaBandeiraAlemanha,2800);

Só que agora, o tempo de aparição das duas ficou meio maluco! Eu entendi a resposta do Flávio para essa questão, mas queria entender a lógica por trás do resultado do código que eu fiz.

1 resposta
solução!

É uma pergunta interessante. Quando estava em 3000 para as duas, o javascript chamava a funcao de desenhar de cada uma quase que ao mesmo tempo, entao uma das duas acabava ganhando ou desenhando uma parte dela em cima da outra.

Quando voce mudou para 3000 e 2800, uma é desenhada 2.8 segundos, a outra logo depois no 3 segundos. Depois disso, a da alemanha é desenhada 2.8 segundos depois, no 5.6 segundos e a do brasil aparece nos 6 segundos, o que da uma impressao de que elas estao se "distanciando" no desenhar, e depois se aproximando.