Estoy pasando codigo a una clase para leer un xml e irlo metiendo dentro de un array, todo funciona bien, lo que no se hacer al final es si el array que quiero usar ya en mi swf debi crearlo en la clase xml y en el Stage
esta es la clase:
Código :
import mx.utils.Delegate; class cargaXML { public var target_txt:TextField; public var tema:String; private var _dataObj:XML; // public var certamenArr:Array; private var _otrosPArr:Array; private var _objeto:Object; private var _objetoOtrosP:Object; function cargaXML(url:String, target:TextField, certamen:String) { if (certamen == undefined) { tema = "dibujo"; } else { tema = certamen; } target_txt = target; certamenArr = new Array(); _otrosPArr = new Array(); _objeto = new Object(); _objetoOtrosP = new Object(); _dataObj = new XML(); _dataObj.ignoreWhite = true; _dataObj.onLoad = Delegate.create(this, onLoadEvent); _dataObj.load(url); } function onLoadEvent(success:Boolean):Void { if (success) { if (_dataObj.firstChild.childNodes.length>0) { constructArray(_dataObj,tema); // gotoAndPlay(2); } else { trace("Archivo sin informacion: 0 NODOS"); } } else { trace("ERROR de carga de datos"); } } function compruebaDato(param) { if (param == null || param == undefined) { var datoStr = ""; } else { var datoStr = param; } return datoStr; } function constructArray(param:XMLNode, tema:String) { var anhoStr:Number = new Number(); var certamenStr:String = new String(); var posicionStr:String = new String(); var autorStr:String = new String(); var archivoStr:String = new String(); var descripcionStr:String = new String(); var lengthChain:Number = param.firstChild.childNodes.length; for (var i = 0; i<lengthChain; i++) { var arrTMP:Array = new Array(); var lengthXAnho:Number = param.firstChild.childNodes[i].childNodes.length; anhoStr = compruebaDato(param.firstChild.childNodes[i].attributes.anho); certamenStr = compruebaDato(param.firstChild.attributes.titulo); _objeto = {certamen:certamenStr, anho:anhoStr}; arrTMP.push(_objeto); if (lengthXAnho<4) { for (var j = 0; j<lengthXAnho; j++) { // ... aqui crea unas vars ... _objeto = {posicion:posicionStr, autor:autorStr, archivo:archivoStr, descripcion:descripcionStr}; arrTMP.push(_objeto); } certamenArr[i] = arrTMP; } else { // LEE Otros participantes for (var j = 0; j<lengthXAnho; j++) { if (j<3) { // ... aqui crea unas vars ... _objeto = {posicion:posicionStr, autor:autorStr, archivo:archivoStr, descripcion:descripcionStr}; arrTMP.push(_objeto); } else { var lengthOtrosP:Number = param.firstChild.childNodes[i].childNodes[j].childNodes.length; var arrTMP2:Array = new Array(); for (var k = 0; k<lengthOtrosP; k++) { // ... aqui crea unas vars ... _objetoOtrosP = {posicion:posicionStr, autor:autorStr, archivo:archivoStr, descripcion:descripcionStr}; arrTMP2.push(_objetoOtrosP); }// end for k } }// end for j certamenArr[i] = arrTMP; certamenArr[i][4] = arrTMP2; } } } }
Bueno, es un rollo, lo unico que quiero dsaber es acerca del array certamenArr que es el array formado a partir del contenido xml, ese, como lo uso en el swf, como lo paso para alla o que?
Perdon, es que no he usado mucho las clases y me atore aqui