Ir para conteúdo

POWERED BY:

Arquivado

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

hao

[Resolvido] Preloader de varias imagens em uma unica vez

Recommended Posts

Fala galera,

 

To tentando fazer o seguinte, tenho um banner que carrega os produtos em destaque, porem eu queria fazer um unico preloader no começo de tudo para carregar as imagens externas, tipo dai a animação vai correr legal, eu tenho esse codigo abaixo de preloader, mas pelo que parece ele está carregando apenas a primeira imagem. O que ta errado no meu codigo?

 

var xml:XML = new XML();
xml.ignoreWhite = true;

xml.onLoad = function() {
	var nItens:Number = xml.childNodes[0].childNodes.length;
	var itens:Array = new Array();
	for (var i = 0; i<nItens; i++) {
		itens.push(xml.childNodes[0].childNodes[i].childNodes[2].firstChild.nodeValue);
	}
	function carrega() {
		//trace(nItens);
		//trace(itens);
		for (i = 0; i < nItens; i++) {
			//trace(i);
			_root.preloader._visible = true;
			_root.holder._visible = false;
			_root.holder.loadMovie(itens[i]);
			//_root.holder._x = 239.8;
			//_root.holder._y = 100.3;
			_root.preloader._xscale = 0;
			_root.holder.onEnterFrame = function() {
				_root.preloader._xscale = Math.floor(_root.holder.getBytesLoaded()/_root.holder.getBytesTotal()*100);
				if (Math.round(this._xscale) == 100) {
					//trace('aqui');
					_root.preloader._visible = false;
					//unLoadMovieNum(this);
					gotoAndStop("Principal", "comeca");
				}
			}
		}
	}
	carrega();
}
xml.load("tickers/dados.xml");

Valeu!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom a pergunta é

 

isso aqui ta funcionando?

_root.holder.onEnterFrame = function() {
				_root.preloader._xscale = Math.floor(_root.holder.getBytesLoaded()/_root.holder.getBytesTotal()*100);
				if (Math.round(this._xscale) == 100) {
					//trace('aqui');
					_root.preloader._visible = false;
					//unLoadMovieNum(this);
					gotoAndStop("Principal", "comeca");
				}
			}

Qual o resultado desses traces que você colocou???

//trace(nItens);

//trace(itens);

 

Eles estão retornando algum valor????

 

E você para poder verificar se tudo ta carregado antes de dar start... você deveria colocar um while(condição) para que ele carregue tudo primeiro aiiiii sim libere para ir para o proximo frame... ou qualquer outra coisa.

 

Você tem que travar... pq se esse loader estiver funcionando... ao completar o primeiro load ele já vai para a cena principal frame começa.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, ta funcionando sim, quanto dou o trace no nItens, retorna 6 (que é o numero de produtos do xml), e no itens, os nomes das imagens, certinho.

E quanto eu rodo, ele ate move a barra de porcentagem, mostrando o progresso, mas esta fazendo isso apenas para a primeira imagem.

 

Esse é o problema, onde se encaixaria esse while? Pois não consegui entender como colocaria ele nesse script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que daria para fazer assim:

var xml:XML = new XML();
xml.ignoreWhite = true;

xml.onLoad = function() {
	var nItens:Number = xml.childNodes[0].childNodes.length;
	var itens:Array = new Array();
	for (var i = 0; i<nItens; i++) {
		itens.push(xml.childNodes[0].childNodes[i].childNodes[2].firstChild.nodeValue);
	}
	function carrega() {
		//trace(nItens);
		//trace(itens);
		while (i < nItens) {
			//trace(i);
			_root.preloader._visible = true;
			_root.holder._visible = false;
			_root.holder.loadMovie(itens[i]);
			//_root.holder._x = 239.8;
			//_root.holder._y = 100.3;
			_root.preloader._xscale = 0;
			_root.holder.onEnterFrame = function() {
				_root.preloader._xscale = Math.floor(_root.holder.getBytesLoaded()/_root.holder.getBytesTotal()*100);
			}
			i++;
			if(i == nItens) break;
		}
		gotoAndPlay('principal', 'começa');
	}
	carrega();
}

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo agora!!!

Valeu pela ajuda, apenas faltou resetar o i.

 

[]'s

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.