Luis Vagner 0 Denunciar post Postado Junho 13, 2011 Pessoal, estou com uma certa dificuldade, eu precisava pausar um for e depois de um tempo continuar executando ele... ex: Ele Lê o primeiro item do array, mostra os resultados do xml e depois de um tempo determinado continua assim até acabar todos os itens do array: Estou tentando fazer assim mais não está funcionando: function funteste(args:Array){ for (i=0; i < args.length; i++){ System.useCodepage = false; var arquivo:XML = new XML(); arquivo.load(args[i]); arquivo.ignoreWhite = true; arquivo.onLoad = function() { //PRIMEIRO NO city =this.childNodes[0].childNodes[0].childNodes[0].childNodes[0].attributes.data; //SEGUNDO NO condition ="Atual: "+ this.childNodes[0].childNodes[0].childNodes[1].childNodes[0].attributes.data; temp_c =this.childNodes[0].childNodes[0].childNodes[1].childNodes[2].attributes.data +" ºC"; humidity =this.childNodes[0].childNodes[0].childNodes[1].childNodes[3].attributes.data; wind_condition =this.childNodes[0].childNodes[0].childNodes[1].childNodes[5].attributes.data; //TERCEIRO NO day_of_week1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[0].attributes.data; icon1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[3].attributes.data; low1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[1].attributes.data +"ºC"; high1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[2].attributes.data +"ºC"; temp_c1 =high1 +" | "+ low1; condition1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[4].attributes.data; _root.mcIcon = new MovieClipLoader(); _root.mcIcon.loadClip("img/sol.gif",mc_icon1); _root.mcIcon.loadClip("img/chuvacomtrovoada.gif",mc_icon2); } setInterval(next, (8*1000)+1000); pause(); }//fim do for } Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Junho 13, 2011 O for vai atropelar sempre o que você quer fazer. O ideal é rodar o for uma única vez e popular um Array com todas as infos do seu xml. Depois de pegar essas informações você pode chamar uma função para ir mostrando os itens de tempos em tempos. Compartilhar este post Link para o post Compartilhar em outros sites
Luis Vagner 0 Denunciar post Postado Junho 14, 2011 O for vai atropelar sempre o que você quer fazer. O ideal é rodar o for uma única vez e popular um Array com todas as infos do seu xml. Depois de pegar essas informações você pode chamar uma função para ir mostrando os itens de tempos em tempos. Obrigado pela ajuda meu amigo! Então, pelo que eu entendi eu estou tentando fazer assim agora, porem quando ele retorna para a função moveSlide a variavel numeros2 continua com o valor 0 ao inves de ter somado antes do setInterval. O que está acontecendo? como faço para que ela some e passe para a funcao moveSlide? numeros = 0; numeros2= 0; function MostraDadosXml(args:Array,numteste){ var arqXml = args[numteste]; System.useCodepage = false; var arquivo:XML = new XML(); arquivo.load(arqXml); arquivo.ignoreWhite = true; arquivo.onLoad = function() { //PRIMEIRO NO city =this.childNodes[0].childNodes[0].childNodes[0].childNodes[0].attributes.data; //SEGUNDO NO condition ="Atual: "+ this.childNodes[0].childNodes[0].childNodes[1].childNodes[0].attributes.data; temp_c =this.childNodes[0].childNodes[0].childNodes[1].childNodes[2].attributes.data +" ºC"; humidity =this.childNodes[0].childNodes[0].childNodes[1].childNodes[3].attributes.data; wind_condition =this.childNodes[0].childNodes[0].childNodes[1].childNodes[5].attributes.data; //TERCEIRO NO day_of_week1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[0].attributes.data; icon1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[3].attributes.data; low1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[1].attributes.data +"ºC"; high1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[2].attributes.data +"ºC"; temp_c1 =high1 +" | "+ low1; condition1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[4].attributes.data; _root.mcIcon = new MovieClipLoader(); _root.mcIcon.loadClip("img/sol.gif",mc_icon1); _root.mcIcon.loadClip("img/chuvacomtrovoada.gif",mc_icon2); var numeros2 = numteste+1; setInterval(moveSlide, (8*1000)+1000); } } function moveSlide(args:Array) { trace(numeros2); numeros = numeros2; if (numeros > args.length){ break; }else{ MostraDadosXml(args,numeros); } } Compartilhar este post Link para o post Compartilhar em outros sites
Luis Vagner 0 Denunciar post Postado Junho 15, 2011 Pessoal, segui a informação do nosso amigo (carneirinho) e consegui resolver assim o meu problema: Obrigado a todos em especial pela sua atenção (carneirinho)! ListaCidades(); function ListaCidades(){ var myXML:XML = new XML(); myXML.ignoreWhite=true; myXML.load('xmlCidades.xml'); myXML.onLoad = function(success) { if (success) { var myImage = myXML.firstChild.childNodes; var listaXml = new Array(); for (i=0; i<myImage.length; i++) { listaXml.push(myImage[i].attributes.nome); } moveSlide(listaXml); } }; } function MostraDadosXml(aCidades:Array,cont){ aRetorno = aCidades; System.useCodepage = false; var arquivo:XML = new XML(); arquivo.load(aCidades[cont]); arquivo.ignoreWhite = true; arquivo.onLoad = function() { //PRIMEIRO NO city =this.childNodes[0].childNodes[0].childNodes[0].childNodes[0].attributes.data; //SEGUNDO NO condition ="Atual: "+ this.childNodes[0].childNodes[0].childNodes[1].childNodes[0].attributes.data; temp_c =this.childNodes[0].childNodes[0].childNodes[1].childNodes[2].attributes.data +" ºC"; humidity =this.childNodes[0].childNodes[0].childNodes[1].childNodes[3].attributes.data; wind_condition =this.childNodes[0].childNodes[0].childNodes[1].childNodes[5].attributes.data; //TERCEIRO NO day_of_week1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[0].attributes.data; icon1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[3].attributes.data; low1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[1].attributes.data +"ºC"; high1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[2].attributes.data +"ºC"; temp_c1 =high1 +" | "+ low1; condition1 =this.childNodes[0].childNodes[0].childNodes[2].childNodes[4].attributes.data; _root.mcIcon = new MovieClipLoader(); _root.mcIcon.loadClip("img/sol.gif",mc_icon1); _root.mcIcon.loadClip("img/chuvacomtrovoada.gif",mc_icon2); ContRetorno = cont+1; Intervalo = setInterval(moveSlide, (8*1000)+1000); } } function moveSlide(aCidades:Array) { cont = ContRetorno; //Zero a variavel de intervalo clearInterval(Intervalo); if(cont>0){ aCidades=aRetorno; } if (cont >= aCidades.length){ //Zero o contador de retorno ContRetorno = 0; //Limpo e destruo os arrays aRetorno.length = 0; aCidades.length = 0; aRetorno=[]; aCidades=[]; //Reinicio todo processo ListaCidades(); }else{ MostraDadosXml(aCidades,cont); } } Compartilhar este post Link para o post Compartilhar em outros sites