Ir para conteúdo

POWERED BY:

Arquivado

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

Luis Vagner

[Resolvido] Pausar for e depois de um tempo continuar

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.