Ir para conteúdo

POWERED BY:

Arquivado

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

kirax

[Resolvido] Importar SWF externo com PreLoader

Recommended Posts

Fala galera, to tentando construir um site todo em Flash AS3. Como é minha primeira tentativa

to com dificuldades de importar um SWF externo com PreLoader.

 

O que pretendo que faça é o seguinte, quando a pessoa clica pra ver meu portfolio o botão

btn1 tem uma function pra ir para a label "portfolio". Quando abrir portfolio começar a

carregar com barra de Loading os swf externo que seria como por exemplo

"trabalho1.swf", "trabalho2.sfw", "trabalho3.swf", etc.

 

Para isso eu tenho que colocar a barra de loading no SWF externo exemplo "trabalho1.swf"

ou eu coloco a action no arquivo principal?

 

Um exemplo legal que achei que é idêntico ao que eu queria é o loaderMax da GreenSock que

além de carregar o SWF principal ele carrega os SWF externo.

http://www.greensock.com/loadermax/

 

 

Espero que não tenha ficado complexo de entender minha dúvida.

 

Desde já, obrigado. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só usar o listener ProgressEvent.PROGRESS

 

Assim:

var loader:Loader = new Loader();

loader.load(new URLRequest("exemplo.swf"));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

function loadProgress(e:ProgressEvent):void{
	// Crie seu loader aqui
}

function loadComplete(e:Event):void{
	addChild(loader);
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá berseck, to tentando entender a action aqui mais está dando um erro nada a ver nessa linha:

var loader.load(new URLRequest("exemplo.swf"));

 

olha o erro:

1086: Syntax error: expecting semicolon before dot.

 

 

Esperando ; antes do ponto, mas que ponto? oÔ

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berseck surgiu mais uma dúvida, meu action está assim:

var loader:Loader = new Loader();

loader.load(new URLRequest("arquivoExterno.swf"));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
function loadProgress(e:ProgressEvent):void{   

addEventListener(Event.ENTER_FRAME, preLoad);

function preLoad(e:Event):void{
	var bytestoLoade:Number = loaderInfo.bytesTotal;
	var numberLoaded:Number = loaderInfo.bytesLoaded;
	if (bytestoLoade == numberLoaded){
		removeEventListener(Event.ENTER_FRAME, preLoad);
		gotoAndPlay(2);
	}else {
		preLoader.preLoaderFill.scaleX = numberLoader/bytestoLoade;
		preLoader.bytesPercent.text = Math.floor(numberLoader/bytestoLoade*100) + "%";
}

}
function loadComplete(e:Event):void{        
addChild(loader);
}

A questão agora é na parte gotoAndPlay(2); eu não quero que ele vá para o frame 2 e sim para o arquivo externo.

Qual action eu teria que usar?

 

Desde já, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berseck a barra não ta crescendo como se tivesse carregando, os números de porcentagem não aparecem e quando termina de carregar, a barra ainda continua estática na tela. Sabe o que pode ser? :o

 

O as ta assim:

var loader:Loader = new Loader();

loader.load(new URLRequest("arquivoExterno.swf"));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
function loadProgress(e:ProgressEvent):void {

	addEventListener(Event.ENTER_FRAME, preLoad);

	function preLoad(e:Event):void {
		var bytestoLoad:Number= loaderInfo.bytesTotal;
		var numberLoaded:Number = loaderInfo.bytesLoaded;
		if (bytestoLoad == numberLoaded) {
			removeEventListener(Event.ENTER_FRAME, preLoad);
		} else {
			preLoader.preLoaderFill.scaleX = numberLoaded/bytestoLoad;
			preLoader.bytesPercent.text = Math.floor(numberLoaded/bytestoLoad*100) + "%";
		}
	}

}
function loadComplete(e:Event):void {
	addChild(loader);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que isso aqui???

 

addEventListener(Event.ENTER_FRAME, preLoad);

 function preLoad(e:Event):void {
 var bytestoLoad:Number= loaderInfo.bytesTotal;
 var numberLoaded:Number = loaderInfo.bytesLoaded;
 if (bytestoLoad == numberLoaded) {
 removeEventListener(Event.ENTER_FRAME, preLoad);
 } else {
 preLoader.preLoaderFill.scaleX = numberLoaded/bytestoLoad;
 preLoader.bytesPercent.text = Math.floor(numberLoaded/bytestoLoad*100) + "%";
 }
 }
???

 

 

O correto é assim:

var loader:Loader = new Loader();

var campo:TextField = new TextField(); // Apenas para o exemplo
addChild(campo); //Apenas para o exemplo

campo.x = stage.stageWidth/2; //Apenas para o exemplo
campo.y = stage.stageHeight/2; //Apenas para o exemplo

loader.load(new URLRequest("http://forum.imasters.com.br/random_logos/logo3.png")); // Troque a URL pelo seu arquivo
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

function loadProgress(e:ProgressEvent):void{
 var loaded = e.bytesLoaded;
 var total = e.bytesTotal;
 var perc = Math.round((loaded/total)*100);
 campo.text = perc+"%";
}

function loadComplete(e:Event):void{
 addChild(loader);
}
Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estava tentando fazer um PreLoader com barra que cresce conforme vai carregando e a porcentagem aparecendo abaixo.

Sou leigo em AS mas entendi mais ou menos seu script e coloquei a barra de carregameto só que quand termina de carregar, a barra não some. Como faço para ela sumir no final? O Child serve pra isso? Olha como ta o script:

 

var loader:Loader = new Loader();

loader.load(new URLRequest("ArquivoExterno.swf"));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

function loadProgress(e:ProgressEvent):void{
 var loaded = e.bytesLoaded;
 var total = e.bytesTotal;
 var perc = Math.round((loaded/total)*100);
 caixatxt.text = perc+"%";
 barra.scaleX = loaded/total;
}

function loadComplete(e:Event):void{
 addChild(loader);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

berseck deu certo, muito obrigado. :)

Só mais uma dúvida, no caso eu queira definir a posição onde o swf carregado vai aparecer na página como devo aplicar isso no Loader?

Preciso criar uma função pra isso? Como seria?

 

Desde já, muitissimo obrigado. :D

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.