Comunidad de diseño web y desarrollo en internet online

obtener array de clase xml

Citar            
MensajeEscrito el 14 Feb 2011 07:53 pm
hola amigos, no puedo conseguir, o mas bien no se como usar un array que he obtenido de una clase xml

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 :oops:

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Feb 2011 03:37 pm
Es una variable pública, así que lo obtienes a traves de la instancia de la clase, suponiendo que se llame mi miXML, sería

miXML.certamenArr

Eso si, si la accedes antes de que haya terminado de cargar t6e devolverá undefined

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2011 03:49 pm
Oooh, bien!

estaba haciendo algo diferente (y funcionaba OK) pero asi tambien

Gracias por el tip

Por comicSans

Claber

151 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.