Buenas siroko,

el problema que tienes es que estás perdiendo el scope dentro del onLoad.

Prueba con esto:

class ParseaXML{
       private var archivo:String;

       public var objetos:Array;

       function ParseaXML(file:String){
               var datos:XML = new XML();
               datos.ignoreWhite = true;
               datos.scope = this;
               datos.onLoad = function(exito:Boolean){
                       if(exito){
                               for(var k:Number=0;
k<this.firstChild.childNodes.length; k++){
                                       var miObj:Object = new Object();
                                       for(var prop in
this.firstChild.childNodes[k].attributes){

miObj.prop+"="+this.firstChild.childNodes[k].attributes[prop];
                                       }
                                       scope.objetos.push(miObj);
                               }
                       }else{
                               trace("falló");
                       }
               }

               archivo = file;
               datos.load(archivo);
       }

}

Saludos
X.

On 2/9/07, Siroko <[EMAIL PROTECTED]> wrote:
> Hola a todos,
>
> Tengo un problema que seguro es bastante básico pero no conozco
> exactamente el funcionamiento de los listeners ni la creación de eventos
> propios. Estoy haciendome una clase que me guarda un xml en un array,
> separando los atributos del xml en propiedades de un objeto generico
> :Object, hasta aquí todo bien, la cosa es que la clase XML tiene el evento
> onLoad y en la linea de tiempo todo va bien, pero en mi clase... No se
> como detectar que se ha recibido y procesado la información. Mi código es
> el siguiente:
>
> class ParseaXML{
>         private var archivo:String;
>
>         public var objetos:Array;
>
>         function ParseaXML(file:String){
>                 var datos:XML = new XML();
>                 datos.ignoreWhite = true;
>                 datos.onLoad = function(exito:Boolean){
>                         if(exito){
>                                 for(var k:Number=0; 
> k<this.firstChild.childNodes.length; k++){
>                                         var miObj:Object = new Object();
>                                         for(var prop in 
> this.firstChild.childNodes[k].attributes){
>                                                 
> miObj.prop+"="+this.firstChild.childNodes[k].attributes[prop];
>                                         }
>                                         objetos.push(miObj);
>                                 }
>                                 return objetos;
>                         }else{
>                                 trace("falló");
>                         }
>                 }
>
>                 archivo = file;
>                 datos.load(archivo);
>         }
>
> }
>
> Un saludo.
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>

-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Responder a