Comunidad de diseño web y desarrollo en internet online

Problema al obtener valor de variable dentro de obj XML

Citar            
MensajeEscrito el 01 Abr 2011 10:37 pm
hola!

antes que nada quiero agradecer a esta comunidad, por tolo lo que me han ayudado con sus aportaciones y publicaciones a lo largo de mi carrera como desarrollador, no quiero dar nombres por que igual se me olvidan algunos en este momento ... :wink: pero de igual manera gracias a todos.

Y bueno ya entrando en materia y sin afan de abrumar a nadie con mi problema y de verdad si no fuera por que ya le inverti varias horas a esto y no he obtenido los resultados deseados, acudo a ustedes; mi problema como lo dice parte de mi asunto es que no logro obtener el valor de una variable desde un objeto XML... dicha variable esta dentro de una clase y el objeto XML esta dentro de un metodo de la clase... les pongo el código y les explico...

Código ActionScript :

class splitText{
        var temp_arr:Array = new Array();

        function splitText(objTxt:Object){      
   typeAnimation = objTxt.typeAnimation;
   if(objTxt.xmlFile) loadXML(objTxt.xmlFile);
   else temp_arr.push(objTxt.string);
        }

        function loadXML(xmlFile:String){
   var ObjXML:XML = new XML();
   ObjXML.ignoreWhite = true;
   ObjXML.onLoad = function(success:Boolean){
           if(success){
      var Container:Array = ObjXML.firstChild.childNodes;
      var numC:Number = Container.length;
      for(var k = 0; k < numC; k++){
              temp_arr.push(Container[k].attributes.captionName);
      }
      trace(temp_arr);
           }
   }
   ObjXML.load(xmlFile);
        }
}


y este es el XML

Código XML :

<?xml version="1.0" encoding="utf-8"?>
<captionList>
<cpItem captionName="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." />
</captionList>


como pueden ver la variable "temp_arr" es una variable de caracter global dentro del entorno de la clase, en teoria o almenos hasta donde yo crei que era posible (ya que en la practica creo que no lo es) deberia de reconocerse dentro de cualquier nivel en la clase pero no logro asignarle los valores del atributo del nodo XML dentro del metodo loadXML() por que no la reconoce, ya intente probando con _root[temp_arr], _parent[temp_arr] this._parent ... etc. y nada (pensando que fuera problema de niveles), el objeto XML trabaja sin problema y tiene la información, pero al llamar a la función trace() me sale el lindo mensaje de "undefined", cosa que no sucede en el segundo caso dentro de la función constructora "temp_arr.push(objTxt.string)", aquí si me muestra el valor.

Si me pueden ayudar a resolver este dilema que me trae ya loco... :shock: se los agradecere mucho... se que no es comun programar hoy en dia en as2 pero todavia habemos algunos que no lo dejamos.

Saludos

Por iwolf

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 04 Abr 2011 06:34 pm
En AS2 para mantener dentro de la clase el scope del callback, tines que usar un delegate asi:

import mx.utils.Delegate

ObjXML.onLoad = Delegate.create(this, onXML);

Luego en el metodo onXML parseas el XML y lo que crees estar{a dentro delscope de la clase. en AS3 ese problma desaparece

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Abr 2011 11:13 pm
Muchas gracias Jorge por tu respuesta, voy a probar y te hago saber los resultados...

Saludos...

Por iwolf

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 05 Abr 2011 12:52 am
Perfecto, gracias nuevamente, quedo resuelto con tu ayuda

Saludos

Por iwolf

1 de clabLevel



Genero:Masculino  

msie

 

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