Acabo de empezar con AS3 y POO, y me gustaría que me pudierais decir qué falla de este script (se que es una stupidez de script, pero yo no veo donde falla).
Comencé a hacer un book digital interactivo, para mandar con mis trabajos a los clientes y agencias, y pensé en hacer algunas clases que voy a poder reutilizar.
Tengo una clase que, dado un string que es una ruta de carpetas, carga y devuelve un xml que se encuentra en la carpeta especificada:
Código :
public class gestion
{
public function gestion() :void {}
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
static function cargaXML(carpeta:String) :XML
{
/*busca el archivo en la carpeta especificada y lo devuelve como XML de flash*/
var ruta:URLRequest = new URLRequest(carpeta);
var loader:URLLoader = new URLLoader;
var listaXML:XML = new XML;
loader.load(ruta);
loader.addEventListener(Event.COMPLETE, completo)
function completo(evento:Event) :void
{
var loader:URLLoader = evento.target as URLLoader;
if (loader != null)
{
listaXML = new XML(loader.data);
}
else
{
trace("loader is not a URLLoader!");
}
}
return listaXML;
}
este es el codigo en el fla una vez importada la clase:
Código :
var gestionador:gestion = new gestion;
var contenido:XML =gestionador.cargaXML("trabajos/lista.xml");
trace(contenido.foto[0].genero[0]);lo cual me devuelve el siguiente error:
TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at interface_fla::MainTimeline/interface_fla::frame2()
El error, creo entender que se da porque el método de la clase no devuelve el xml cargado, pero dentro de la funcion llamada por el evento COMPLETE, sí carga el XML. ¿como es que la clase no devuelve el XML?
Y bueno esa es la duda que tengo, gracias de antemano por la ayuda, pero sobre todo por la existencia de esta web.
PD: Otra cosa; el comando trace ejecutado desde una clase en un .AS no aparece en la salida del .fla, ¿debería? Me sería de gran utilidad.
