[Resolvido] Flash Preloader e a classe MovieClipLoader
Para nossos testes, vamos utilizar uma imagem grande, um arquivo JPEG de 1,66mb: foto.jpg
Neste exemplo iremos criar um SWF para carregar a nossa imagem JPEG, mas também pode ser utilizado para carregar arquivos SWF, GIF ou PNG.
Primeiro criamos um texto dinâmico para exibir a porcentagem com o nome de instância “textload”.
Depois inserimos no frame onde está o texto dinâmico (e onde será carregada a imagem) o seguinte código:
//criamos o movieclip que carregará nosso arquivo
this.createEmptyMovieClip("loadct",1);
//criamos o objeto MovieClipLoader
var obJmcl:MovieClipLoader = new MovieClipLoader();
//criamos um objeto parece receber os eventos do MovieClipLoader
var obJact:Object = new Object();
//criamos as ações para o evento onLoadProgress (enquanto estiver carregando)
obJact.onLoadProgress = function(mc, bt, tt):Void {
var pc = Math.round((bt/tt)*100);
//exibimos a porcentagem carregada
textload.text = pc+"%";
};
//criamos as ações para o evento onLoadComplete (ao completar o carregamento)
obJact.onLoadComplete = function(mc):Void {
//ocultamos a porcentagem
textload._visible = false;
};
//registramos o objeto com as ações dos eventos no MovieClipLoader
obJmcl.addListener(obJact);
//carregamos o arquivo dentro do movieclip criado
obJmcl.loadClip("foto.jpg",loadct);
stop();Pronto, o Preloader já está funcionando.
Com este tutorial chegamos ao resultado: preloader2.swf
Arquivo FLA deste exemplo: preloader2.fla (não preciso falar que pra funcionar no seu computador você precisa colocar o arquivo foto.jpg na mesma pasta néh?) :P
A classe MovieClipLoader
Esta classe, diferente do método MovieClip.loadMovie(), nos oferece eventos que podemos utilizar durante o carregamento de nosso arquivo externo.
Como já dito, ela aceita arquivos JPEG, SWF, GIF ou PNG.
No Preloader temos um exemplo do seu funcionamento e, além dos eventos onLoadProgress e onLoadComplete utilizados, temos também o onLoadError, o onLoadInit e o onLoadStart, que poderíamos utilizar assim:
//criamos o movieclip que carregará nosso arquivo
this.createEmptyMovieClip("loadct",1);
//criamos o objeto MovieClipLoader
var obJmcl:MovieClipLoader = new MovieClipLoader();
//criamos um objeto parece receber os eventos do MovieClipLoader
var obJact:Object = new Object();
//criamos as ações para o evento onLoadProgress (enquanto estiver carregando)
obJact.onLoadProgress = function(mc, bt, tt):Void {
var pc = Math.round((bt/tt)*100);
//exibimos a porcentagem carregada
textload.text = pc+"%";
};
//criamos as ações para o evento onLoadComplete (ao completar o carregamento)
obJact.onLoadComplete = function(mc):Void {
//ocultamos a porcentagem
textload._visible = false;
};
//criamos as ações para o evento onLoadInit (ao iniciar o carregamento)
obJact.onLoadInit = function(mc):Void {
trace("load iniciado");
};
//criamos as ações para o evento onLoadStart (caso seja um SWF, será executado no
//primeiro frame do arquivo carregado ou, caso seja uma imagem será executado após
//a leitura da mesma...
obJact.onLoadStart = function(mc):Void {
trace("arquivo iniciado");
};
//criamos as ações para o evento onLoadError (caso ocorra algum erro no carregamento)
obJact.onLoadError = function(mc, erro, httpstatus):Void {
trace("ocorreu um erro: "+erro+" - httpstatus: "+httpstatus);
};
//registramos o objeto das ações dos eventos no MovieClipLoader
obJmcl.addListener(obJact);
//carregamos o arquivo dentro do movieclip criado
obJmcl.loadClip("foto.jpg",loadct);
stop();E além dos métodos addListener e loadClip utilizados no Preloader, temos também o getProgress, o removeListener e o unloadClip que seriam utilizados da seguinte forma:
//criamos o movieclip que carregará nosso arquivo
this.createEmptyMovieClip("loadct",1);
//criamos o objeto MovieClipLoader
var obJmcl:MovieClipLoader = new MovieClipLoader();
//criamos um objeto parece receber os eventos do MovieClipLoader
var obJact:Object = new Object();
//criamos as ações para o evento onLoadProgress (enquanto estiver carregando)
obJact.onLoadProgress = function(mc, bt, tt):Void {
var pc = Math.round((bt/tt)*100);
//exibimos a porcentagem carregada
textload.text = pc+"%";
//outra opção para acompanhar o progresso do carregamento...
var lPr = obJmcl.getProgress(mc);
trace(lPr.bytesLoaded+" de "+lPr.bytesTotal+" carregados");
};
//registramos o objeto das ações dos eventos no MovieClipLoader
obJmcl.addListener(obJact);
//podemos remover o objeto das ações dos eventos que está no MovieClipLoader
obJmcl.removeListener(obJact);
//carregamos o arquivo dentro do movieclip criado
obJmcl.loadClip("foto.jpg",loadct);
//podemos remover o arquivo carregado dentro do movieclip criado
obJmcl.unloadClip(loadct);
stop();É uma classe perfeita para trabalharmos com o carregamento de arquivos, sem dúvidas. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Fonte: http://www.guilhermebaptista.com.br/blog/2...oviecliploader/
Discussão (0)
Carregando comentários...