jueves, 14 de abril de 2011

Cominicarse con una película que se carga en ActionScript 3.0

Ahora con ActionScript es muy sencillo comunicarse con un archivo SWF. Un ejemplo clásico es tener un lanzador y cargar  diferentes SWF con contenido. Supongamos que deseamos controlar el volumen de los archivos cargados desde el lanzador, de lo contrario, cada título que carguemos tendríamos que modificar el volumen. Para ello necesitamos pasar un parámetro a cada película. Otra posible modalidad es que el lanzador pase un parámetro de seguridad, para que las películas no se ejecuten si no se cargan desde el lanzador.

Primero debemos cargar el swf en un objeto de la clase Loader:

function cargaSWF(archivo:String):void {
            loader = new Loader();
            var req:URLRequest = new URLRequest(archivo+".swf");
            //
            loader.load(req);
            addChild(loader);
            loader.contentLoaderInfo.addEventListener(Event.INIT,onInit);
            //
}

private function onInit(event:Event ):void {
            //Aqui esta el truco, la propiedad content y manejarla como movieClip
            movie=loader.content as MovieClip;
            //A partir de este punto ya lo podemos tratar como un movieClip
           //mas del escenario y llamar propiedades
            movie.parametros(_volumenSonido, _volumenMusica);
            movie.addEventListener(BOTONES,onBotonesPelicula);
            movie.addEventListener("fin",onFinPelicula);
 }


Aqui el único problema es que en la película que carga le tengo que poner el dispatchEvent en el segundo fotograma. Las funciones que se llaman si se escriben desde el primer fotograma, pero funciona muy bien.

No hay comentarios:

Publicar un comentario