hao 0 Denunciar post Postado Junho 20, 2009 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 20, 2009 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
hao 0 Denunciar post Postado Junho 20, 2009 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 20, 2009 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
hao 0 Denunciar post Postado Junho 20, 2009 Deu certo agora!!! Valeu pela ajuda, apenas faltou resetar o i. []'s Compartilhar este post Link para o post Compartilhar em outros sites