Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gbs

[Resolvido] Flash Preloader e a classe MovieClipLoader

Recommended Posts

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/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.