terminé una aplicación y quiero hacer una pantalla de inicio para que desde allí dandole a un botón me cargue el .swf donde tengo la aplicación (esta en un .as asociado al .fla).
He probado de varias maneras pero después que me cargue la pantalla no se como hacer para que reconozca la pulsación del botón y se cargue la aplicación. He escrito un código simplificado para hacer pruebas de el método que estoy intentando. Consiste en una clase que extiende la clase EventDispatcher para poder comunicar con un evento la clase de la pantalla de inicio con la de la aplicación a cargar, la clase principal en el archivo .fla tiene un MC que cubre toda la pantalla que es donde cargo la pantalla de inicio.
Pongo los archivos de código a continuación, estaria muy agradecido si alguien pudiera darme alguna pista para poder hacer que funcione.
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.*;
public class PruebaLoaderPrincipal extends MovieClip {
var mi_cargador:Loader = new Loader();
var dispatcher:CustomDispatcher = new CustomDispatcher(); //crea instancia de CustomDispatcher
//////////////////7 Clase Principal /////////////
/////// el .fla tiene un circulo que se puede arrastrar //////////////////
public function PruebaLoaderPrincipal() {
// constructor code
var mi_ruta:URLRequest = new URLRequest("PruebaLoader.swf");
mi_cargador.load(mi_ruta);
pantalla.visible = true;
mi_cargador.contentLoaderInfo.addEventListener(Event.COMPLETE, pantallaCargada);
//mi_cargador.addEventListener(MouseEvent.CLICK, actionHandler);
//IniciaTodo();
}
function pantallaCargada(e:Event)
{
addChild(mi_cargador);
}
function actionHandler(event:MouseEvent):void {
var loader:Loader = Loader(event.target);
loader.unload();
}
function IniciaTodo()
{
pelota.addEventListener(MouseEvent.MOUSE_DOWN,arrastrarHandler);
pelota.addEventListener(MouseEvent.MOUSE_UP,soltarHandler);
}
function arrastrarHandler(e:MouseEvent):void
{
pelota.startDrag();
}
function soltarHandler(e:MouseEvent):void
{
pelota.stopDrag();
}
}
}
/////////// Clase con la pantalla de inicio //////////////////////////////////////
/////////// contiene un título y un botón /////////////////////////////////////
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.EventDispatcher;
public class PruebaLoader extends MovieClip {
var dispatcher:CustomDispatcher = new CustomDispatcher(); //crea instancia de CustomDispatcher
public function PruebaLoader() {
// constructor code
BotonEntrar.addEventListener(MouseEvent.CLICK, EntrarHandler);
}
function EntrarHandler(e:MouseEvent)
{
trace("Ha entrado en ENTRARHANDLER");
dispatcher.doAction();
}
}
}
////////// Clase que exiende EventDispatcher ///////////////////////////////////////////
//////////// Crea un evento ACTION que deberia poderse detectar desde las otras clases ////////////
package {
import flash.events.EventDispatcher;
import flash.events.Event;
class CustomDispatcher extends EventDispatcher
{
public static var ACTION:String = "action";
public function doAction():void
{
dispatchEvent(new Event(CustomDispatcher.ACTION));
trace("Se ejecuta doAction en la clase CustomDispatcher");