Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

GIF não é animado

Meu código funciona, mas queria fazer com que o GIF rodasse a animação própria também. Como fazer?

<!doctype html>
<head>
    <meta charset="UTF-8"/>
</head>
<html>
    <body>
        <canvas id="tela" width="600" height="400"></canvas>

        <script>

            var tela = document.getElementById("tela");
            var c = tela.getContext("2d");
            var x = -100;
            var img = new Image();
            img.src = "http://www.netanimations.net/Moving-picture-puffing-chugging-locomotive-animated-gif.gif";

            var desenhaImagem = function() {
                limpaTela();
                c.drawImage(img, x, 200)
                x = x + 10;
            };

            var limpaTela = function(){
                c.clearRect(0,0,600,400);
            }

            setInterval(desenhaImagem, 30);            
        </script>
    </body>
</html>
2 respostas
solução!

Renan,

Infelizmente esse é um problema bastante complexo. O canvas que vemos no curso permite o desenho estatico de elementos na tela. Quando queremos animar, nós mesmos redesenhamos a tela de tempos em tempos.

Para o gif aparecer animado num canvas teríamos que pegar quadro a quadro dele e desenhar de tempos em tempos de forma animada. Isso é bem complicado. Não é impossível, mas é um esforço imenso que agora tiraria o foco dos seus estudos.

Resposta meio desanimadora, eu sei, mas recomendo deixar essa questão pra depois. Por agora, vamos fazer com imagens paradas mesmo :-)

Abraço

Bom, beleza então. Hora de partir pro próximo módulo!