Ir para conteúdo

POWERED BY:

Arquivado

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

Luiz Henrique

[Resolvido] Como saber quando uma estrutura de repetição termina?

Recommended Posts

Olá pessoas,

 

Preciso saber quando uma estrutura de repetição chega ao fim, pois estou pegando informações de uma XML e de acordo com a quantidade de informações contidas neste XML terei que criar um objeto definir suas dimenssões e posição, como utilizo o for para ficar em execussão até que não haja mais linhas a serem lidas no XML não tenho uma quantidade definida, tenho 3 soluções para isto, criar um campo no XML que informe quantos registros tem o arquivo, fazer um for só para criar uma variável com a quantidade de registro e a 3ª seria esta quando o for chegar ao fim eu teria a variável com o valor.

 

Alguma dica?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A dica é você fazer um for de length

Que pegue todos os valors que você quer exemplo

 

total = xml.firstChild.childNodes.length;
for(var i = 0; i < xml.firstChild.childNodes.length; i++){
total += xml.firstChild.childNodes[i].childNodes.length;
}
trace(total);

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Pegar a quantidade de registros eu consigo se eu der um trace no i do code do berseck eu terei a quantidade, a questão é que preciso executar uma função somente quando eu já tiver o valor final da quantidade de registros eu precisaria que:

 

total = xml.firstChild.childNodes.length;

 

Já me desse a quantidade de linhas do XML sem que eu tenha que levar isto para um for por exemplo usto seria o ideal, porque se eu fizer isto:

 

total = xml.firstChild.childNodes.length;
for(var i = 0; i < xml.firstChild.childNodes.length; i++){
total += xml.firstChild.childNodes[i].childNodes.length;
}
trace(total);

no lugar do trace eu teria que coloocar a chamada para minha função ex:

 

funcao(total);

 

Mas a execussão da função ocorre antes de eu ter o valor total este é o problema porque minha função basicamente faz:

 

funcao(valor){

objeto._width = valor*tamanho;

}

 

Vou testar o code hoje a noite não posso agora e retornarei.

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha se seu código estiver assim

var xml:XML = new XML()
var total:Number = 0;

xml.ignoreWhite = true;
xml.load("seuXML.xml");

xml.onLoad = function(ok){
if(ok){
total = xml.firstChild.childNodes.length;
for(var i = 0; i < xml.firstChild.childNodes.length; i++){
total += xml.firstChild.childNodes[i].childNodes.length;
}
constroe();
}else {
trace("deu erro");
}
}

function constroe(){
objeto._width = total*tamanho;
}

O constroe só vai funcionar depois que ele fizer todo o for.... não vai fazer antes....

 

Então você consegue sim ter tudo que você quer...

 

Abraços

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.