A primeira solução que tentei aplicar para o problema foi o código abaixo que não funcionou. Depois acabei chegando num código funcional, mas ainda não consegui entender o porquê do código abaixo não ter funcionado. Eu até entendo que ele trocaria as bandeiras apenas uma vez, mas nesse caso ele fica parado apenas na bandeira do Brasil. Teria algum outro jeito de usar essa lógica?
<canvas width="600" height="400"></canvas>
<script>
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
function bandeiraBrasil(){
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 * Math.PI);
pincel.fill();
}
function bandeiraAlemanha(){
pincel.fillStyle = "black"
pincel.fillRect(0, 0, 600, 133);
pincel.fillStyle = "red"
pincel.fillRect(0, 133, 600, 266);
pincel.fillStyle = "yellow"
pincel.fillRect(0, 266, 600, 400);
}
function limpaTela(){
clearRect(0, 0, 600, 400);
}
function trocaBandeira(){
setInterval(bandeiraBrasil, 3000);
clearRect();
setInterval(bandeiraAlemanha, 3000);
clearRect()
}
trocaBandeira();
</script>