Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
Já que estamos usando JavaScript para controlar <canvas> elementos, também é muito fácil criar animações interativas. Fazer animações mais complexas pode levar um tempo extra; esperamos introduzir um novo artigo para auxiliar sobre isso em breve.
Provavelmente a maior limitação é que uma vez que uma forma é desenhada, ela permanece assim. Se precisarmos mover, temos que redesenhar-lá e tudo que foi desenhado antes. Demora muito tempo pra redesenhar frames complexos e a desempenho depende altamente da velocidade do computador em que está rodando.
Estes são os passos que você precisa para desenhar um frame:
Formas são desenhos na tela usando os canvas métodos diretamente ou chamando personalizadas. Em circunstancias normais, nós somente vemos esses resultados aparecerem na tela quando o script termina de ser executado. Por exemplo, não é possível fazer uma animação dentro de um loop for.
Isso significa que precisamos de um jeito para executar nossas funções de desenho durante um período de tempo. Existem dois jeitos para controlar uma animação como essa.
Primeiramente há as funções window.setInterval() e window.setTimeout(), que podem ser usadas para chamar uma função específica durante um certo período definido de tempo.
Nota: Nota: O método window.requestAnimationFrame() agora é a maneira recomendada de programar animações. Vamos atualizar esse tutorial para abortar isso em breve.
Inicia repetidamente executando a função específica pela função a cada milissegundo de atraso.
setTimeout(função,atraso)Executa a função especificada pela função em milissegundos de atraso.
Se você não quer nenhuma interação do usuário, é melhor usar a função setInterval() que executa repeditamente o código fornecido.
O segundo método que nós podemos usar para controlar uma animação é a entrada do usuário. Se nós quiséssimos criar um jogo, nós poderiamos usar os eventos do teclado ou mouse para controlar a animação. Ao definir EventListeners, nós pegamos qualquer interação do usuário e executamos nossas funções da animação.
Se você quer a interação do usuário, você pode usar uma versão menor ou a versão principal do nosso framework pra animação:
var myAnimation = new MiniDaemon(null, animateShape, 500, Infinity);ou
var myAnimation = new Daemon(null, animateShape, 500, Infinity);Nos exemplos abaixo, no entanto, usamos o método window.setInterval() para controlar a animação. Na parte inferior dessa página há alguns links de exemplos que usam window.setTimeout().
Esse exemplo anima um pequeno modelo do nosso sistema solar.
Esse exemplos desenha um relógio animado, mostrando sua hora atual.
Nesse exemplos, um panorama é rolado da esquerda pra direita. Nós estamos usando uma imagem do Parque Nacional de Yosemite que tiramos da Wikipedia, mas você pode usar qualquer imagem que fosse maior que a tela.
Abaixo é o <canvas> em que a imagem é rolada. Note que a largura e a altura especificadas aqui devem corresponder aos valores das variáveis CanvasXZSize e CanvasYSize no código JavaScript.
Jogo de desenho para multiplayers.
CanvascapeUm jogo de aventura 3D (tiro em primeira pessoa).
A basic ray-casterUm bom exemplo de como fazer animações usando os controles do teclado.
canvas adventureOutro bom exemplo que usa controles de teclado.
An interactive BlobDivirta-se com Blob.
Flying through a starfieldVoe através de estrelas, círculos ou quadrados.
iGrapherUm exemplo que ilustra os dados do mercado de ações.
This page was last modified on 10 de abr. de 2026 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.