Novamente mais um post aqui!!
Como estou trabalhando em um site feito em puro ActionScript vi que é essencial um
Preloader e por isso nosso post vai ser a respeito..!
Vamos aprender a fazer um
Preloader ;D
Bom primeiramente você tem que ter conhecimento que toda
animação tem um
"Tamanho em Kbytes", ou seja, tudo tem um tempo para carregamento. Se você tem uma animação de 10mb, ou seja, 10.000 Kbytes e sua conexão é de 5 Kbytes, (10.000/5 = 2.000) você demoraria 2.000 segundos ou 33 minutos para poder carregar sua animação. Inquanto carrega sua animação seria interessante ir rodando uma animaçãozinha né, um Preloader.
Bom agora que vocês sabem o que é um Preloader e qual utilidade ele tem, vamos aos codigos... ;D
Antes de mais nada abra o Flash e
crie um MovieClip, instancie-o de "meu_mc" (sem aspas);
Vamos entender as princiapais funções.
1000 bytes = 1 Kbyte - 1kb
1000 Kbytes = 1 Megabyte - 1mb
(OBS estou utilizando valores arredondados para facilitar a conta de cabeça, os valores reais de bytes é 1024b);
1) getBytesTotal() - A função retorna o valor total de bytes do objeto. Você pode tanto pegar o valor total do frame como o valor de um MovieClip exclusivo.
Ex:.
>CODE <<>
trace (meu_mc.getBytesTotal());
// retorna o total de bytes do movieclip
2) getBytesLoaded() - Retorna o valor de bytes carregado.
Ex:.
>CODE <<>
loadedbytes = meu_mc.getBytesLoaded();
totalbytes = meu_mc.getBytesTotal();
_root.onEnterFrame = function(){
if(totalbytes > (loadedbytes - 50000)){
trace (loadedbytes);
}
}
Você pode perceber que ele irá fazer um loop com o valor de bytes total, mas isso ocorre porque você está abrindo ele locamente sem tempo de carregamento, se fosse Online isso demoraria muito pra carregar.
Agora vamos montar nosso primeiro Preloader.
>CODE <<>
onClipEvent(load) {
total = _parent.getBytesTotal();
_parent.stop();
}
onClipEvent(enterFrame) {
loaded = _parent.getBytesLoaded();
if(loaded == total) _parent.play();
}
Explicando cada linha:
01 - Ao carregar o movieclip, executa...
02 - Seta a variável "total" como sendo o valor total de bytes do filme. Utilizamos aqui junto a função getBytesTotal() o aliás _parent. Ele indica um caminho relativo do preloader em relação a timeline principal. Quer dizer, ele indica que o valor de bytes total é o da timeline principal, é escopo acima(_parent) da timeline do movieclip.
03 - Pàra a execução do filme. A explicação do _parent é a mesmo da linha 2. Só que aqui, ao invés de retornar o total de bytes, ele está parando a execução da timeline.
04 - Encerra o evento load.
05 - Ao entrar no frame... Este seria o nosso loop, onde cada vez que ele executar o frame, ele atualizaria o valor da variável.
06 - Seta a variável "loaded" como sendo o valor de bytes recebidos até o momento. A cada execução do loop esse valor é atualizado.
07 - Faz um verificação de condicional. Caso o valor da variável total seja igual "== " (sinal de comparação) ao da variável loaded, executa o filme. Caso essa condicional não seja verdadeira, continua o loop.
08 -Encerra o evento enterFrame.
Bom pessoa esse é um Preloader bem simples.. seman que vem eu coloco um avançado com animação ;D
mas apartir daqui você já consegue fazer o carregamento!!
até mais ;D