2
respostas

Não deu certo

Tentei rodar o código do instrutor aqui no navegador, apareceu esse erro: https://drive.google.com/file/d/0B8cs_U57mR4wcjcyanZIUlBuTFk/view?usp=sharing

<!-- bandeiras.html -->

<canvas width="600" height="400"></canvas>

<script>



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 limpaTela() {
    pincel.clearRect(600, 400);
 }



 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);
}

    var mostraBrasil = true;

    function trocaBandeira() {

        limpaTela();

        if (mostraBrasil == true) {

            desenhaBandeiraBrasil();
            //mostraBrasil = false;

        } else {

            desenhaBandeiraAlemanha();
            //mostraBrasil = true;
        }

            mostraBrasil = !mostraBrasil; //inverte o valor booleano de true para false e de false para true

        }


setInterval(trocaBandeira, 3000); //a cada 3s chama a função trocaBandeira

</script>
2 respostas

Oi Vinicius, tudo bem? O código que você colou não está igual ao do instrutor :). A variável pincel não está definida no escopo da função limpaTela. Confere de novo o código sugerido que você vai perceber.

Teria que fazer isso ?

function limpaTela() {
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.clearRect(600, 400);
 }