Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.
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
Deu certo agora!!!
Valeu pela ajuda, apenas faltou resetar o i.
[]'s
Bom a pergunta é
isso aqui ta funcionando?
Qual o resultado desses traces que você colocou???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