Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: ganon en 22 de Mayo de 2009, 01:30:40 AM

Título: Carga XML.. problema de comunicación entre clases as3.
Publicado por: ganon en 22 de Mayo de 2009, 01:30:40 AM
Hola a todos, resulta que tengo un problemita, estoy haciendo un proyecto flash cs4, el cual contiene varios archivos *.as para separar clases.
En particular tengo dos clases, CargaXML en el archivo CargaXML.as el cual carga un archivo xml llamado songs.xml y la clase GuiGameSongSelection en el archivo GuiGameSongSelection.as en el cual quiero listar los datos xml leidos en la instancia de CargaXML pero nose como hacerlo, realmente estoy perdido.
Agradecería mucho su ayuda.

a continuación el código:
CargaXML.as

package {
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   import flash.xml.XMLDocument;
   import flash.errors.*;
   import flash.events.*;
   
   public class CargaXML {
     
      private var loader:URLLoader;
      private var mainXML:XML;
      //public var message:String = "Variable de instancia llamada";
     
      public function CargaXML(urlDelXML:String){
         loader = new URLLoader();
         loader.addEventListener(Event.COMPLETE, onComplete);
         loader.load(new URLRequest(urlDelXML));
      }
     
      public function onComplete(evt:Event):XML  {
         try {
            mainXML=XML(loader.data);
            //trace(mainXML);
            //trace("Leido el XML");
           
         } catch (e:Error) {
            //trace("Error: " + e.message);
            return;
         }
      }
   }
}


GuiGameSongSelection.as


package {
   import flash.display.*;
   import flash.events.*;
   import flash.utils.Timer;
   import flash.text.TextField;

   public class GuiGameSongSelection extends MovieClip {
     
      private var XMLSongs:CargaXML;
     
      public function GuiGameSongSelection() {
         XMLSongs = new CargaXML("songs.xml");
         //pruebas con trace
         trace("intentando rescatar datos del xml");
         trace("GuiSongs");
         trace(XMLSongs.message);
         trace(XMLSongs.mainXML);
         
      }
   }
}

Título: Re: Carga XML.. problema de comunicación entre clases as3.
Publicado por: Alexpi en 28 de Mayo de 2009, 10:47:44 AM
o haces el objeto mainXML de la clase CargaXML publico, o te creas un metodo publico que te devuelva el objeto (yo optaria por lo 2º).

Ademas tu onComplete, no devuelve ningun XML, asi q ponle void.

Un saludo.