Esta página utiliza 'XHTML 1.0 Transitional' válido Esta página utiliza CSS válido
Búsqueda personalizada

Cargar ficheros SWF basados en Flex desde otros SWF no basados en Flex

Cuando queremos cargar ficheros SWF desde aplicaciones Flex, todo funciona a la perfección con el control SWFLoader de Flex. Sin embargo, el caso contrario no es tan sencillo. Para cargar aplicaciones o películas SWF basadas en Flex desde una aplicación Flash (no basada en Flex) con ActionScript y que todo funcione correctamente y sin errores, tendremos que hacer alguna cosa adicional.

Al parecer, la carga de ficheros SWF basados en Flex desde ficheros SWF no basados en Flex no está soportada oficialmente por Adobe.

El problema gira en torno al SystemManager, y la solución es bastante sencilla, aunque nada trivial:

var flexLoader:Loader = new Loader();
addChild(loader);
flexLoader.load(new URLRequest("FlexApp.swf"));
flexLoader.addEventListener("mx.managers.SystemManager.isBootstrapRoot", systemManagerHandler);
flexLoader.addEventListener("mx.managers.SystemManager.isStageRoot", systemManagerHandler);
 
function systemManagerHandler(event:Event):void { event.preventDefault(); }

En primer lugar cargamos el SWF de Flex con un Loader. A continuación añadimos dos listeners para unos eventos que se lanzan al arranque del SystemManager. Parece ser que si el SystemManager lanza esos dos eventos y no ocurre nada, empieza a hacer cosas raras, así que lo que vamos a hacer es capturarlos y cancelarlos (con preventDefault).
Fecha de publicación: 09/11/2015
Etiquetas: ActionScript , Flash , Flex , SWF
Prohibida la reproducción total o parcial de los textos o imágenes aquí expuestos salvo autorización expresa y por escrito del autor de los mismos. © 2007-2017 Locualo v1.0. Política de privacidad [www.locualo.net]