GUILHERME SCHEIBE (49 pts)

GÉRIO (93 pts)

DENIS CARAVALHO (85 pts)

HELEN TRIOLO (444 pts)

DEMIS BUCCI (50 pts)

EDUARDO CARREGA (150 pts)

LEANDRO AMANO (83 pts)

ZECA BALA (45 pts)

MANGOOST (80 pts)

NETO LEAL (116 pts)

ZEBEDIAH (35 pts)

SASHA GUDEY (235 pts)
Treinamento PontoFlash de Flash e ActionScript

É possível referenciar um botão sem ser dentro de um movieclip?

Quero um relógio somente com as horas.

Como mandar um comando de um movieclip para um outra cena?

Como carregar clipes aleatórios?

Como criar um link em um banner no Flash?

Existe algum modo de definir quais variáveis vão ser enviadas pelo POST do flash?

Como adicionar valores a uma variável?

Eu queria por a minha página na net, mas em FullScreen. Mas não sei fazer isso no flash.

Quero que ao clicar em um botão executar um filme que vai para 'alpha=0', tipo um 'fadeOut'.

Alguem conhece algum plug-in para exportar do 3d studio max e importar no flash?

Como validar campos num formulário flash?

Como checar se o usuário escreveu um email válido certo no formulário?

Como definir um loop infinito em sons abertos por attachSound?

Como faço para selecionar um determinada letra de uma string?
Adicionar ao favoritos

Enquete interagindo Flash MX 2004 + PHP + MySql

Includes.

Flash no Espaço Geográfico

Imagens transparentes usando PhotoShop, Fireworks e Flash.

Load Movie no FlashMX (swf, jpg e mp3).

Objeto Movieclip - Endereçamento (primeira parte)

Citroen, máscaras que simulam vídeo - Avaliação de sites

GetMySQLData para Flash5 (primeira parte)

Barra de rolagem simples no Flash5.

Variáveis de arquivos de texto.

Criando um objeto para sua paleta personalizada (NINJA)
Frank

Barra de Scroll

Scroll html

Estática

Condições

Alphacolor

Neve

Rolagem dinâmica

Digitalclock

Bounce

ICQ

Drawline
HOME | TUTORIAIS
Load Múltiplos.
por Alexandre Porto

INTRODUÇÃO

É consenso que quando você tem um site grande com várias seções, a melhor maneira de disponibilizar seu conteúdo é dividí-lo em vários filmes linkados no menu de um filme inicial. Assim você não obriga o internauta a baixar um conteúdo que talvez ele nem queira ver. Sempre é perguntado na lista PontoFlash como poderíamos agilizar o carregamento desses filmes, sem que o internauta perceba. Isto é, camufladamente. O interessante dessa idéia é que quando ele for chamar uma seção o filme correspondente já estaria carregado.

 

Como tudo no Flash você tem várias maneiras de fazer isso. Eu escolhi uma que considero bem simples e acessível a maioria do pessoal.

A primeira questão é que esses filmes devem ser carregados em níveis diferentes e logo após o loading deve haver um frame vazio, sem conteúdo, para que ele fique "invisível" até que seja chamado pelo internauta. Nos dois filmes aqui representados, esse frame vazio é o 3. O frame com conteúdo visível é o 4.

Mas você deve estar perguntando: para quê um loading se o filme vai ser carregado sem que o internauta perceba?

Boa pergunta, mas a resposta é simples: Pode acontecer do cara clicar no botão que chama um filme ainda não carregado e aí o loading será necessário.

Você vai reparar que esse exemplo se baseia na troca dos valores de duas variáveis (_level0.botao1 e _level0.botao2, uma para cada filme) entre os três filmes ("primeiro_filme", "segundo_filme" e "terceiro_filme"). Basicamente os valores enviados para essas variáveis são três:

"Load Movie" - quando o filme está sendo carregado por detrás dos panos;
"Load Movie and go" - quando o filme for chamado pelo botão e no caso dele
ainda não estiver sido totalmente carregado e;
"Go To" - quando o filme for chamado pelo botão e no caso dele já estiver sido
totalmente carregado.

Coloquei esses valores como string para que eles sirvam também como "rótulo" dos botões, facilitando a sua compreensão. Bom, vamos deixar os entretantos e vamos diretos aos finalmentes. :)

Como fica o primeiro_filme, o que vai chamar os outros?

Nesse meu exemplo ele é um filme de apenas um frame com dois botões que controlarão os outros filmes. Nesse frame eu seto duas variáveis e mando uma instrução de load movie para os dois filmes:

_root.botao1 = "Load Movie";
_root.botao2 = "Load Movie";
loadMovieNum ("segundo_filme.swf", 1);
loadMovieNum ("terceiro_filme.swf", 2);

Criei os dois botões e coloquei numa camada acima de cada um deles, um campo de texto com a variável correspondente (botao1 e botao2). Assim o campo vai mostrar a função que o botão exercerá naquele determinado momento. No primeiro botão, o que controlará o "segundo_filme", eu coloquei as seguintes ações:

on (release) {
   if (_root.botao1 =="Load Movie") {
      loadMovieNum ("segundo_filme.swf", 1);
      _root.botao1 = "Load Movie and go";
   } else if (_root.botao1 =="Go To") {
      _level1.gotoAndStop(4);
      _level2.gotoAndStop(3);
   }
}

Vamos entender esses comandos.

Se a variável botao1 for igual a "Load Movie", quer dizer que ele ainda está sendo carregado. Lembre-se que esse valor foi setado logo no início do filme. Nesse caso eu tenho que repetir o comando de Load Movie, para priorizar seu carregamento. No entanto, se "botao1" for igual a "Go To", o filme já foi carregado e o comando dele será apenas um GotoAndStop. Além disso, eu envio os filmes para os frames que quero que sejam mostrados. Nesse caso o filme do level1 vai para o frame 4, onde está o frame com conteúdo visível e o filme do level2 para onde está o frame vazio (3).

Mas como sei quando o filme está ou não carregado?

É que quando o filme estiver carregado, um novo valor "Go To" será enviado para "botao1". Você vai ver isso daqui a pouco. Na quarta linha do código eu setei para a variável "botao1" o valor "Load Movie and go". Esse será o valor checado pelo loading dos outros filmes para ir diretamente para o frame 4, onde está o conteúdo propriamente dito e não para o frame vazio (3).

E os outros filmes como ficam?

Fiz os dois filmes iguais para facilitar. Alterei apenas a foto mostrada. Ela tem a finalidade principal de dar algum trabalho ao loading. Eles têm 4 frames. Dois para o loading (1 e 2), uma para o frame vazio (3) e o último com o conteúdo visível. Eu coloquei uma ação "if frame is load" no primeiro frame, mas você pode usar um daqueles loadings que utilizam "Get Bytes etc (você encontra tutoriais na seção avançados). Nesse filme eu também coloquei um campo de texto "vartexto" para mostrar o histórico do processo.

No primeiro frame eu coloquei:

ifFrameLoaded (4) {
   vartexto = "Filme 2 sendo carregado";
   if (_level0.botao1 =="Load Movie and go") {
      gotoAndStop (4);
   } else if (_level0.botao1 =="Load Movie") {
      gotoAndStop (3);
   }
   _level0.botao1 = "Go To";
}

Nesse código o loading checa o conteúdo de "level0.botao1". Lembre-se que o botão seta a variável com o valor "Load Movie and go". Nesse caso mando o filme diretamente para o conteúdo (frame4). Se o filme atual tiver sido carregado simplesmente pelo primeiro frame do filme principal (_level0), o valor da variável ainda é "Load Movie" e assim eu o envio para o frame 3, aquele que deixei em branco. Na última linha eu seto o valor da variável para "Go To". A partir de agora o botão correspondente a esse filme no filme principal só vai trabalhar com um Goto (tell target, na verdade), já que eu não vou fazer unload em nenhum momento. Volte para ver o código do botão mostrado acima que você vai entender isso.

No segundo frame está:

gotoAndPlay (1);
// Loop até o carregamento do filme

O terceiro frame é vazio, mas eu setei um valor a "vartexto" só como demonstração:

vartexto = "Filme 2 carregado e esperando";

No quarto frame está o conteúdo. Nesse caso uma foto, o botão de fechar e:
vartexto = "Filme 2 carregado e disponível";

No botão de fechar eu coloquei a seguinte ação:

on (release) {
   gotoAndStop (3);
}

Isso faz com que o filme vá para o frame "invisível" esperando ser chamado novamente pelo botão "Go To". Espero que você tenha entendido. É claro que você vai ter que adaptar todos os comandos para seu projeto que não deve ser tão simples como esse exemplo. De qualquer maneira você pode baixar aqui os filmes usados nesse tutorial. Bom proveito.



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
1 comentário


Comentário de kané
| 7/12/2010 - 14:45 |


Até gostaria de ver como foi feito mas o link do download está quebrado. De qualquer forma, achei interessante e verei como fica aqui no flash. Grato