Flash básico 07: Movies dentro de movies

1. Encapsulamento

Vimos algumas situações de animação, e procuramos sempre resolve-las através do uso de transições de forma, movimento, ou através de uma animação quadro-a-quadro.

Algumas situações, no entanto, são mais complexas do que as que vimos até agora, e pedem uma outra estratégia.

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Existe o movimento da máquina, dos dois pistões, e da engrenagem. E tudo se move ao mesmo tempo. Animar tudo isto no timeline principal iria ser muito trabalhoso.

Mas há uma outra forma, que resolve este problema encapsulando objetos dentro de outros objetos. Para fazer esta animação eu montei a máquina e depois converti cada pistão como um objeto separado, dentro do movieclip da máquina e fiz a animação de cada pistão dentro do próprio objeto pistão. Assim, o processo não difere muito do que vimos até agora, com a diferença que podemos considerar um movieclip como um timeline próprio.

Este processo nos dá a chance de combinar movimentos complexos sem perder a visão de onde cada movimento se encontra. No final do processo temos objetos que contém seu movimento internalizado.

2. Movieclips dentro de outros movieclips

Um exemplo disto é fazer uma bicicleta. Existe o movieclip cRoda2 (que é simplesmente o objeto desenhado) e o objeto cRoda (que é o movieclip cRoda2 já com movimento). Veja como é a montagem no vídeo a seguir.

3. Movieclips dentro de botões

As ações que podem ser programadas em um botão são muitas, mas veremos apenas cinco ações, as mesmas que podem ser aplicadas aos quadros.

  função sintaxe
play continuar a execução animação, depois de ela ter sido parada bt1.onRelease = function() {
play();
}
stop parar a execução da animação bt1.onRelease = function() {
stop();
}
gotoAndPlay desviar a animação para outro trecho e continuar executando a animação bt1.onRelease = function() {
gotoAndPlay(21);
}
gotoAndStop desviar a animação para outro trecho e parar bt1.onRelease = function() {
gotoAndStop(21);
}
geturl carregar uma página HTML no navegador bt1.onRelease = function() {getURL(“http://www.uol.com.br”);
}

Reparem que, diferentemente da plaicação de ações sobre quadros, nos botões temos que dizer em qual ação do usuário sobre o botão a ação deve ser disparada. Para simplificar, usaremos sempre a ação de clic sobre o botão, disparando a ação quando o mesmo é solto (release).