Ir para conteúdo

POWERED BY:

Arquivado

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

Andre Cocuroci

Preload AS3

Recommended Posts

Pessoal, to tentando fazer um preload em AS3 e está me dando uma #@?$%~ dor de cabeça.

 

Quando acesso a página com o preload no ie8 e FF3 pela primeira vez tudo ocorre normalmente, mas se eu der um f5 o swf não sai da animação do preload. Não sei pq isso está acontecendo.

 

Vejam o código:

 

stop();

this.root.loaderInfo.addEventListener(Event.COMPLETE, completo);
this.root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, loading);

function completo(e:Event):void {
	this.root.loaderInfo.removeEventListener(Event.COMPLETE, completo);
	this.root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loading);
	play();
}

function loading(e:ProgressEvent):void {
	var c:Number = e.bytesLoaded;
	var t:Number = e.bytesTotal;
	var p:Number = Math.floor((c/t) * 100);
	preload.text.text = p + "%";
}

O que pode estar errado? Ou precisa de mais alguma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto ao root, não sei informar.

Mas em um preloader básico, neste exemplo, com porcentagem e barra de carregamento, considerando o código no frame 1, falta um "gotoAndPlay(2);"

 

stop();
var Carrega:Number;
var Perc:Number;
Barra.addEventListener(Event.ENTER_FRAME, Carregando);

function Carregando(e:Event):void{
	Carrega = stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal;
	Perc = Math.round(Carrega * 100);
	Barra.scaleX = Carrega;
	per.text = Perc + "%";
	
	if(Perc == 100){
		Barra.removeEventListener(Event.ENTER_FRAME, Carregando);
		gotoAndPlay(2);
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas queria usar os eventos específicos:

Event.COMPLETE e ProgressEvent.PROGRESS e não o ENTER_FRAME.

 

E ele funciona na primeira vez, mas não na segunda. Fica preso no primeiro frame. Usando essa maneira:

stop();

loaderInfo.addEventListener(Event.COMPLETE, completo);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, loading);

function completo(e:Event):void {
        loaderInfo.removeEventListener(Event.COMPLETE, completo);
        loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loading);
        play();
}

function loading(e:ProgressEvent):void {
        var c:Number = e.bytesLoaded;
        var t:Number = e.bytesTotal;
        var p:Number = Math.floor((c/t) * 100);
        preload.text.text = p + "%";
}

ou a mesma citada no tópico.

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.