Criar “loading” no Flash

Tutoriais Flash

Vou postar aqui uma maneira bem simples de como se fazer aquela tela “Loading” enquanto a apresentação do flash é carregada.


Vale lembrar:

  • O meu flash é em inglês, então se o seu é em português os nomes dos menus que eu citarei abaixo podem não ser os mesmos;
  • Por padrão, para inserir uma ação no flash, existe um modo guiado onde é selecionado o comando desejado em uma lista a esquerda. Eu não utilizo este modo guiado e nem sei como utilizar, então eu postei somente as ações necessárias. Como vocês vão inserir estas ações, daí é com vocês.

1 – Faça sua apresentação normalmente.

2 – Ao terminar, clique no menu Window/Scene. Será aberta uma janelinha contendo as cenas da sua apresentação. A ordem a ser executada após publicada a apresentação é de cima para baixo, então vamos criar uma cena contendo o “loading” que iniciará antes de todas. Para criar a nova cena é só clicar no botão “+”. Uma nova cena aparecerá na lista, abaixo das outras que estiverem lá. Mova a cena criada para o topo da lista clicando e arrastando com o mouse e renomeie para o nome que quiser clicando duas vezes sob o nome da cena.

3 – Na cena criada, na “Timeline”, crie 2 “Layers” clicando no “+” sob um papelzinho localizado no canto da “Timeline”. Nomeie os “Layers” criados de “texto” e o outro “acoes”.

4 – Em “texto” crie um texto dizendo “loading” ou o que você quiser escrever para avisar o usuário que sua apresentação está carregando.

5 – Crie mais um “Keyframe” para “acoes” precionando F6 com o layer selecionado ou clicando com o botão direito do mouse e no menu “Insert keyframe” e mais dois “frame” para “texto” precionando F5 com o layer selecionado ou clicando com o botão direito do mouse e no menu “Insert frame”.

6 – No primeiro “Keyframe” do “acoes”, clique com o botão direito do mouse e no menu “actions” ou precione F9 com o keyframe selecionado. Abrirá uma tela para serem inseridas as ações. Coloque o seguinte código:

if (Number(_framesloaded) == Number(_totalframes)) {
 * *gotoAndPlay(3);
}

7 – Faça o mesmo no segundo keyframe de “acoes” mas desta vez insira o código:

gotoAndPlay(1);

Prontinho. Esta é a maneira mais simples.
O comando _framesloaded retorna o número de frames carregados até o momento, e o comando _totalframes, retorna o total de frames da apresentação. No if indicado acima, é perguntado se a quantidade de frames carregados é igual a quantidade total de frames da apresentação. Se for, o filme se inicia, se não ele “volta o filme” e continua perguntando.

Existem outras maneiras mais sofisticadas que eu não vou postar aqui por que me levaria muito tempo, mas utilizando esta maneira, ainda dá pra sofisticar um pouco.

Veja só: se você sabe a quantidade total de frames, e sabe quantos já foram carregados, então dá pra calcular a porcentagem do filme que foi carregada!

Eu fiz o seguinte exemplo:
Para fazer siga os passos (não vou postar em detalhes):

1 – Crie um “movieClip” contendo uma barra que cresce em 100 frames e em outro layer um texto que servirá de variável. Nas propriedades do texto escolha a opção “Dynamic text” e no campo “Var” digite “percent”

2 – No primeiro frame deste movieClip, insira a ação:

stop();

3 – Insira o movieClip criado da cena criada acima em um novo layer. Nomeie o movieClip de “barra”.

4 – Modifique a ação do layer “acoes” no primeiro frame para:

if (Number(_framesloaded) == Number(_totalframes)) {
 * *gotoAndPlay(3);
}
else{
 * *barra.percent = ((_framesloaded * 100) / _totalframes) + "%";
 * *barra.gotoAndStop(int((_framesloaded * 100) / _totalframes));
}