Comunidad de diseño web y desarrollo en internet online

Presentación y exposición de problema de principiante con un loader

Citar            
MensajeEscrito el 03 May 2012 06:50 pm
Hola, en primer lugar presentarme, es mi primer post como novato (novatísimo) en AS3

Mi problema es el siguiente: Intento hcer una app para manejar un Xml, que cargo mediante el siguiente code:

[url=http://pastebin.com/eWDE8R7X][/url]

El problema está en la linea 24. trace(XmlExterno) me devuelve null. Si esa misma trace la hago en completehandler, el xml se me visualiza bien, pero no puedo trabajar con él desde fuera de la clase

¿qué estoy haciendo mal?

Muchas gracias :)

p.d.: Por cierto ¿como posteais los pastebin directamente?, para ir yo aprendiendo :D

Por TheMagoZero

41 de clabLevel



 

Ingeniero Técnico Industrial

firefox
Citar            
MensajeEscrito el 03 May 2012 07:05 pm
Ya aprendí (creo) a pastear código. Rehago la pregunta:
Si hago trace(XmlExterno) en la funcion completeHandler, no tengo problema
Si hago trace(XmlExterno) en la funcion cargarYAsignarXML, me devuelve null

la pregunta es: ¿Qué estoy haciendo mal? :)
Graciaaaaas

Código ActionScript :

    package {     
            import flash.display.MovieClip;
            import flash.net.URLRequest;
            import flash.net.URLLoader;
            import flash.events.Event;
            import flash.display.MovieClip;

            public class RPCCargaXml extends MovieClip {               
                    var url:String = "CircuitosXml.xml";
                    var XmlExterno:XML;
                    var nodoACargar:uint;
                                    
                    public function RPCCargaXml() {
                    }
                   
                    public function cargarYAsignarXML() {
                            CargarXML();
trace(XmlExterno);                             
 //Si hago aquí trace(XmlExterno);, me da null :(
                    }
                                            
                            function CargarXML() {
                            var XML1:XML;                         
                            var loader:URLLoader = new URLLoader();
                            loader.addEventListener(Event.COMPLETE, completeHandler);
                            var peticion:URLRequest = new URLRequest(url);
                            loader.load(peticion);
                            }
                   
                            function completeHandler(event:Event) { 
                            var cargador:URLLoader = event.target as URLLoader;                    
                            XmlExterno = new XML(cargador.data);
                            XmlExterno.ignoreWhiteSpaces=true;
 trace(XmlExterno);      
 //Si hago aquí trace(XmlExterno);, no problem
                            }
    }

Por TheMagoZero

41 de clabLevel



 

Ingeniero Técnico Industrial

firefox
Citar            
MensajeEscrito el 03 May 2012 08:27 pm
La carga de un XML es asíncrona, es decir hasta que no se termina de cargar no puedes accederlo. Se termina de cargar cuando se dispara el callback, y te sale null porque intentas accederlo antes de que termine de cargar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 May 2012 08:32 pm
Muchas gracias por tu pronta respuesta, Jorge, y disculpa que te haga otra pregunta de novatísimo: ¿y como hago eso?¿algún ejemplo?

Gracias
Javier

Por TheMagoZero

41 de clabLevel



 

Ingeniero Técnico Industrial

firefox
Citar            
MensajeEscrito el 03 May 2012 08:37 pm
Lo accedes en el completeHandler, eso es todo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 May 2012 08:44 pm
!!si!!
¡¡¡Gracias!!!

Por TheMagoZero

41 de clabLevel



 

Ingeniero Técnico Industrial

firefox

 

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