Resulta que tengo una aplicación que navega una cierta estructura a la que se va accediendo cargando SWF externos...
Para explicarme mejor, tengo un swf de base, que carga otros externos los cuáles tienen sistemas de navegación independientes.
Por ej. en el caso de un BARCO por ej. tengo un swf base, que carga en un primer SWF externo el mapa del barco completo... si en ese SWF hacemos click en por ej. la sala de máquinas, cargamos otro SWF con la sala de máquinas y tenemos que descartar el nivel anterior... y así sucesivamente para navegar todo el modelo.
Bueno, el tema es que estoy tratando de manejar las cargas desde la clase principal del documento pero han surgido varios problemas. EL más grave... es que no estoy pudiendo llamar a una función desde un SWF cargado, que está en la clase del documento principal...
Aquí tengo más o menos el codigo.
Esto primero sería la función en la clase de documento que carga la pieza correspondiente...
Código ActionScript :
var entrada:Loader;
var direccion:String;
var peticion:URLRequest;
public function cargarPieza(codPza):void
{
direccion:String = "client/unidad/swf/" + codPza + ".swf";
peticion:URLRequest = new URLRequest(direccion);
entrada.contentLoaderInfo.addEventListener(Event.COMPLETE, cargaCompletaPieza);
entrada.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, cargaProgresoPieza);
entrada.load(peticion);
}
public function cargaCompletaPieza(event:Event)
{
addChild(event.target.content);
entrada.contentLoaderInfo.removeEventListener(Event.COMPLETE, cargaCompletaPieza);
entrada.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, cargaProgresoPieza);
}
public function cargaProgresoPieza(event:ProgressEvent)
{
var porcentaje = event.bytesLoaded / event.bytesTotal;
} Ahora bien... dentro del SWF que se carga... el primero de ellos... tengo el siguiente código para cargar una nueva parte en el contenedor principal. Los elementos M2D1 al M2D5 son botones que representan subpiezas que sirven para disparar (cargar) SWF externos en los cuales se observan con mayor detalle. El nombre del boton, que lleva el nombre de la pieza se pasa a la función en la línea de tiempo principal... para cargar un nuevo SWF...
Código ActionScript :
M2D5.addEventListener(MouseEvent.CLICK, verPieza);
M2D4.addEventListener(MouseEvent.CLICK, verPieza);
M2D3.addEventListener(MouseEvent.CLICK, verPieza);
M2D2.addEventListener(MouseEvent.CLICK, verPieza);
M2D1.addEventListener(MouseEvent.CLICK, verPieza);
var carga:Loader;
var nombrepieza:String;
function verPieza(event:MouseEvent):void{
nombrepieza = event.target.name;
event.target.parent.parent.cargarPieza(nombrepieza);
}
El problema, es que aparentemente no puedo acceder a la función cargarPieza de esta manera. He leído bastante y he caído en algunos conceptos algo confusos para mí como CASTING o cosas así que me parece que podrían funcionar... pero la verdad no le encuentro la vuelta.
Otra cosa que quisiera lograr y que no he podido, es, que al momento de presionar un boton (ej. M2D1) descargue o haga un unload de la película desde donde ejecuté el comando, para que las películas cargadas se vayan eliminando a medida que se carguen nuevas...
Bueno muchachos, bastantes problemas tengo, quisiera si alguien pudiera darme una mano con esto, les agradeceria ya que tengo que resolverlo cuantos antes o me cocinan! ja ja.
Un gran saludo a todos los del foro.
