Flash AS2 11: LoadMovie

1. Um movie puxa o outro

Existem várias vantagens em usar movies externos. Vou falar de duas delas.

  • A primeira é a modularidade. Imagine que estou fazendo um animação que mostra outras animações, cada uma com um minuto. Posso usar um mesmo objeto para controlar cada animação, com botões de play, stop, etc, sem me preocupar com qual animação ele está controlando. Caso que precise susbtituir uma animações por outra, a estrtura central de controle continua valendo. Ao contrário, se o controle fosse interno a cada movie, eu precisaria alterar o controle em cada um separadamente… em trabalhão.
  • A outra é o gerenciamento de memória. O Flash tem melhorado muito na maneira como gerenciar memória, mas ainda existem limites que dizem respeito tanto à memória RAM disponível quanto à banda, no caso de uma publicação pela internet (banner, site, game, etc.). Se a minha animação é muito grande, vale a pena eu separa-la em pedacinhos para que a memória não fique lotada de trechos da animação que nem estão passando. Se eu tenho um site com 5 áreas, é prudente fazer 6 arquivos no Flash. Um central, que vai carregando os outros conforme o usuário mude de uma área para a outra. Isso evita um pre-loader interminável e evita que a memória fique lotada.

A esta altura você já percebeu que o Flash é um programa que permite que você estruture a sua animação ou aplicativo. Você pode colocar objetos dentro de objetos, dentro de objetos.

É comum, por exemplo, em um site extenso, cada área do site estar em um movie separado. Esta parte é carregada somente se e quando necessário.

Como foi dito, separar movies ajuda a estruturar o site e evita, por exemplo, que um site tenha que ser carregado completamente antes de ser mostrado.

Vamos imaginar, por exemplo, que o seu site trabalhe com vários pintores, e tenha uma área para cada um.

Uma área para Dali, outra para Matisse, outra para Magritte. Você pode ter um movie principal que carregue outros movies conforme for solicitado. Para este exemplo, preparei alguns movies:

  • dali.swf
  • magritte.swf
  • matisse.swf

Ao usar o menu, cada movie é carregado dentro do movie principal.

2. Carregando e descarregando movies



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

Get Adobe Flash player


Primeiro criei os movies do Dali, Matisse e Magritte. Cada um em um arquivo separado, gerando os arquivos dali.swf, matisse.swf e magritte.swf.

Depois criei um movie clip vazio. Dei um nome qualquer e batizei a instância de “vazio”. Este movie clip vai servir para receber os movies externos; é nele que os movies externos vão ficar quando carregados.

Depois fiz os botões para carregamento.

Em cada um deles, coloquei o seguinte código:

dali.onRelease=function() {
  loadMovie("dali.swf", "vazio");
}

A linha loadMovie(“dali.swf”, “vazio”) quer dizer o seguinte: carregue o arquivo “dali.swf” para dentro do movie clip “vazio”.

No último botão, aquele com um X, o código é um pouco diferente. Ele serve para esvaziar o conteúdo carregado dentro de “vazio”.

esvaziar.onRelease=function() {
  unloadMovie("vazio");
}

3. Próximos passos

Mas, e se o movie a ser carregado for muito grande? Como informar o usuário que ele deve esperar enquanto o movie é carregado?

Na próxima aula vamos abordar o tema pré-loader. Quem viver, verá…

4. Vídeo