Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando Bernardes

XML.load / XML.onLoad / array - Dor de cabeça!

Recommended Posts

Ae galera, essa foi uma solução adaptada por mim, vi em um post e acredito ser do Eder Fortunato.

Preciso retornar uma matriz dessa funcao que contenha os valores do XML.

Acontece que esse método Xml.onLoad parece que é assincrono, intaum eu tive q fazer o seguinte:

 

Na frame 1 coloquei a função:

System.useCodepage = true;matmes = new Array();function conectaXML(arquivo:Number) {	var meuXML:XML = new XML();	meuXML.load(arquivo+".xml");	meuXML.ignoreWhite = true;	meuXML.onLoad = function() {		var xmlNodes:Array = this.firstChild.childNodes;		for (var i = 0, len:Number = xmlNodes.length; i<len; i++) {			matmes.push( {DIA:parseInt(this.firstChild.childNodes[i].attributes.numero)});			//trace (matmes.length);			//trace (matmes[i].DIA);		}	}};conectaXML(1);
Na frame 2 a checagem:

if (matmes.length != 0) {//agora da certo :Ptrace (matmes[0].DIA);stop();}
Essa foi a unica forma de funcionar...

tentei usar

-function nome (variaveis) : Array { ...

-MeuXML.onLoad = function(sucesso) com if (sucesso) ...

-etc... Nada da certo!

Se alguém souber de algum jeito de consertar essa gambiarra... Ja tentei várias coisas... por favor só se manifeste quem souber algo concreto.

 

Só quero é uma função que retorne uma matriz com o conteudo do XML. Sem gambiarras se possível e utilizando a boa prática de programaçao hehehe.

Valeu Galera! aguardo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que exatamente você quer fazer? explique melhor

 

se for esperar os dados voltarem do XML, pra usa-los

 

no 1º frame teste assim

 

stop()System.useCodepage = true;matmes = new Array();function conectaXML(arquivo:Number) {  var meuXML:XML = new XML();  meuXML.load(arquivo+".xml");  meuXML.ignoreWhite = true;  meuXML.onLoad = function() {  var xmlNodes:Array = this.firstChild.childNodes;  for (var i = 0, len:Number = xmlNodes.length; i<len; i++) {	matmes.push( {DIA:parseInt(this.firstChild.childNodes[i].attributes.numero)});	//trace (matmes.length);	//trace (matmes[i].DIA);  }  _root.play()}};conectaXML(1);

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.