3
respostas

troca bandeiras

a princípio pensei no mais fácil e testei: colocar a função da bandeira do brasil pra atualizar a cada 6 segundos e a outra bandeira (mudei para a bandeira Trans) para cada 3 segundos. dá certo, cada uma fica na tela por 3 segundos, MAS a tela começa vazia, só depois de 3 segundos é desenhada a 1a bandeira. taí o código se quiser testar:

<!-- bandeiras.html -->

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

<script>

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

        pincel.fillStyle = 'darkgreen'; //fundo da bandeira do brasil
        pincel.fillRect(0, 0, 600, 400);

        pincel.fillStyle = 'yellow'; //losango amarelo
        pincel.beginPath();
        pincel.moveTo(0, 200);
        pincel.lineTo(300, 0);
        pincel.lineTo(600, 200);
        pincel.lineTo(300, 400);
        pincel.fill();

        pincel.fillStyle = 'darkblue'; //círculo azul
        pincel.beginPath();
        pincel.arc(300, 200, 125, 0, 2*3.14);
        pincel.fill();

        pincel.fillStyle = 'white'; //faixa branca
        pincel.beginPath();
        pincel.moveTo(180, 160);
        pincel.lineTo(427, 200);
        pincel.lineTo(420, 240);
        pincel.lineTo(172, 200);
        pincel.fill();
    }


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

        pincel.fillStyle = 'lightblue'; //fundo da bandeira trans
        pincel.fillRect(0, 0, 600, 400);

        pincel.fillStyle = 'pink'; // faixas cor de rosa
        pincel.fillRect(0, 80, 600, 240);

        pincel.fillStyle = 'white'; //faixa branca
        pincel.fillRect(0, 160, 600, 80);
    }

    setInterval(desenhaBandeiraTrans, 3000);

    setInterval(desenhaBandeiraBrasil, 6000);

</script>

pra não ficar com esses 3 segundos de tela vazia, eu criei a função trocaBandeiras() e coloquei os setInterval dentro dela, depois chamei a função da bandeira do brasil (porque na função de troca comecei com a bandeira Trans) e a troca bandeiras consecutivamente, assim primeiro é desenhada a bandeira do brasil e depois de 3 segundos é feita a troca para a Trans e as trocas não param mais.

<!-- bandeiras.html -->

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

<script>

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

        pincel.fillStyle = 'darkgreen'; //fundo da bandeira do brasil
        pincel.fillRect(0, 0, 600, 400);

        pincel.fillStyle = 'yellow'; //losango amarelo
        pincel.beginPath();
        pincel.moveTo(0, 200);
        pincel.lineTo(300, 0);
        pincel.lineTo(600, 200);
        pincel.lineTo(300, 400);
        pincel.fill();

        pincel.fillStyle = 'darkblue'; //círculo azul
        pincel.beginPath();
        pincel.arc(300, 200, 125, 0, 2*3.14);
        pincel.fill();

        pincel.fillStyle = 'white'; //faixa branca
        pincel.beginPath();
        pincel.moveTo(180, 160);
        pincel.lineTo(427, 200);
        pincel.lineTo(420, 240);
        pincel.lineTo(172, 200);
        pincel.fill();
    }


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

        pincel.fillStyle = 'lightblue'; //fundo da bandeira trans
        pincel.fillRect(0, 0, 600, 400);

        pincel.fillStyle = 'pink'; // faixas cor de rosa
        pincel.fillRect(0, 80, 600, 240);

        pincel.fillStyle = 'white'; //faixa branca
        pincel.fillRect(0, 160, 600, 80);
    }

    function trocaBandeiras(){
        var tempo = 3000

        setInterval(desenhaBandeiraTrans, tempo);

        setInterval(desenhaBandeiraBrasil, tempo*2);

    }

    desenhaBandeiraBrasil();
    trocaBandeiras();

</script>
3 respostas

postei sem ver a solução do instrutor.. gostei bastante! eu sempre me esqueço desses booleanos e nunca penso em uma maneira de fazê-los úteis kk é sempre uma surpresa positiva quando a resposta traz o uso deles, porque eu fico impressionado com o raciocínio de programação e com as possibilidades que são abertas

É engraçado porque eu aprendi a usar booleanos uns anos atrás, quando comecei a usar Excel pra fazer processamento de umas planilhas que eu recebia no trabalho - e no final das contas é uma noção que serve pra muita coisa que use lógica de programação.

pra você ver! nunca mexi muito com excel e booleanos pra mim é um jeito completamente novo de lidar com as informações.. e estou gostando muito