Comunidad de diseño web y desarrollo en internet online

problema al iniciar xml

Citar            
MensajeEscrito el 23 Sep 2009 05:41 am
cordial saludo amigos

yo trabajo frecuentemente con archivos xml siempre he tenido el siguiente inconveniente me sale el siguiente error;

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

el código esta bien si cargo las variables por un listener como mouse move y funciona pero; si deseo que las variables carguen cuando se carga correctamente el xml se presenta el el error

Código XML :

<?xml version="1.0" encoding="ISO-8859-1"?>
<productos>
<producto>
<nombre>CERO</nombre>
<imag>front.jpg</imag>
</producto>
<producto>
<nombre>UNO</nombre>
<imag>bottom.jpg</imag>
</producto>
</productos>



Código ActionScript :

package 
{
   
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
   import flash.display.Sprite;
   
   import flash.events.Event;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   
   
   public class xmlpru extends Sprite
   {
      private var textoo:TextField;
      private var externalXML:XML;
      
      function xmlpru():void {
         Xmload();
         
         }
      
      public function Xmload():void {
            
            var loader:URLLoader = new URLLoader();
            var request:URLRequest = new URLRequest("productos01.xml");
            loader.load(request);
            loader.addEventListener(Event.COMPLETE, onComplete);
            
         }
         
      public function onComplete(event:Event):void{
               var loader:URLLoader = event.target as URLLoader;
               if (loader != null)
               {
//////SI CARGA CORRECTAMENTE EL XML LLAMA A LA FUNCIÓN textl();
                  textl();
                  externalXML = new XML(loader.data);
                  trace(externalXML.toXMLString());
                  }
                  else
                  {
                     trace("loader is not a URLLoader!");
                  }
      }
         
         public function textl():void {
         textoo = new TextField();
            textoo.autoSize = TextFieldAutoSize.CENTER;
            var format:TextFormat = new TextFormat();
            format.font = "Verdana";
            format.color = 0x28166f;
            format.size = 20;
            textoo.defaultTextFormat = format;
         textoo.x = (stage.stageWidth / 2) - (textoo.width / 2);
         textoo.multiline = true;
//ACÁ SE PRESENTA EL ERROR NO PUEDO CARGAR EL NODO QUE CONTIENE LA INFORMACION 
         textoo.htmlText = externalXML.producto[1].nombre.toString();
         addChild(textoo);
            
         }   
      
   }

   
}


si llamo a la función (textl() ; ) con un mouse move funciona y carga correctamente e sorteado este inconveniente con un listener en mousemove y lo remuevo apenas se ejecuta, pero para el proyecto que estoy realizando necesito que cargue la información apenas se carga correctamente el xml;

es como si intentara cargar la informacion sin cargar el xml; pero como observan en el código en los comentarios solo cuando se ha cargado correctamente al xml llama a la función que usa la información del xml

Gracias de antemano

Por tremulousevolution

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2009 06:48 am
Es problema porque "stage" NO existe hasta que no se halla añadido con un addChild
Aparte de las dos soluciones dadas en este post existe otra que es pasarle un parámetro al constructor que sea el stage.

Por Eliseo2

710 de clabLevel



 

firefox

 

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