Lo que estoy haciendo es una clase que carga un fichero XML y que tendría diversos métodos get para recuperar datos concretos del XML. De momento no es del todo funcional, ya que estoy haciendo una prueba y no consigo lo que quiero.
Ésta es la clase:
Código ActionScript :
package clases
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class CargaXML extends MovieClip
{
private var prueba:String;
public function CargaXML(ruta:String)
{
var loader:URLLoader=new URLLoader;
var request:URLRequest=new URLRequest(ruta);
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE,xmlcompletado);
loader.load(request);
}
private function xmlcompletado(event:Event)
{
// Aquí se leería el XML y se irían asignando datos a variables
prueba = "hola";
}
public function nombre()
{
// Ésta luego sería un método get para devolver un dato concreto del XML
trace(prueba);
}
}
} Y ésta la llamada a la misma:
Código ActionScript :
import clases.*;
var xmlCursos:CargaXML = new CargaXML("cursos.xml");
xmlCursos.nombre();Y aquí vienen el problema: En la salida, el trace devuelve null. Esto creo que es porque la llamada al método nombre() se ejecuta antes de que termine de cargar el fichero XML, por tanto aún no ha dado tiempo a que se le asigne un valor a la variable prueba dentro del método xmlcompletado. ¿Cómo haríais para solucionar esto? ¿habría alguna manera de no se permita llamar al método nombre() hasta que haya terminado de cargar el fichero xml?
Me he extendido tanto porque espero que el problema quede claro, a ver si alguien me puede ayudar. Gracias!
