Modularización con Adoble Flex
Apr/086
Una característica importante que tiene Flex es a la hora de crear módulos, este provee un componente el cual sirve para cargarlos (estos son SWF, el “ejecutable” que compila Flex), el Cargador de Módulos se crea de la siguiente forma:
<mx:ModuleLoader id="CargadorModulos" url="ejemplo_modulo.swf" width="100%" height="100%" />
Este se comporta como cualquier otro componente y tiene las típicas propiedades como width y height, donde podemos definir el tamaño de este, como también incluye la propiedad url, que será el modulo a cargar, en este ejemplo se cargará el modulo “ejemplo_modulo.swf”. Si queremos accesar desde el modulo a propiedades u objetos de la aplicación principal debemos importar lo siguiente (dentro de nuestro modulo):
<mx:Script>
<![CDATA[
import mx.core.Application;
private function init():void {
Application.application.ObjetoDesdeAplicacion.Metodo();
}
]]>
</mx:Script>
Puede ser que necesitemos ejecutar una función al momento de que cargue el módulo, como ya creamos la función init() debemos agregar la propiedad “initialize” a nuestro modulo:
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="100%" height="100%" initialize="init()">
Ahora supongamos que queremos cargar otro modulo desde “ejemplo_modulo.swf” para esto simplemente podemos hacer lo siguiente (suponiendo que estamos agregando esto al CDATA de Script:
<mx:Script>
<![CDATA[
private function FuncionCargaOtroModulo():void {
Application.application.CargadorModulos.url = "otro_modulo.swf";
}
]]>
</mx:Script>
Pueden bajar el ejemplo completo donde encontrarán como crear menús y como tratar los eventos de estos para cargar un nuevo modulo.
Ejemplo de Modularización en Flex
Enjoy this article?
Leave a comment
No trackbacks yet.
8:48 am on November 18th, 2008
Hola Andrés
Muy contento por poder entrar a su blog llevaba meses intentando acceder.. (estás bien posicionado en google), para conocer los temas que tratas acerca de fléx y demás…
Le escribo para animarlo y contarle que sus temás además de ser muy oportunos están bien explicados y muy bien desarrollados…
Gracias…
Un saludo desde Colombia…
2:50 pm on December 11th, 2008
Muy interesante el ejemplo. Estoy haciendo algo parecido y buscando como resolver un problema que tengo he eoncontrado esta página.
Sobre el tema este de los módulos. Hay alguna manera que el módulo que cargamos sepa en que ModuleLoader está cargado? Por ejemplo, yo tengo un módulo que no se en que ModuleLoader está cargado (realmente lo se, pero hay veces que está cargado en uno y otras en otro). Si yo desde este módulo quiero cambiar la url del MóduleLoader en el que está cargado como puedo hacerlo?
Un saludo y gracias.
1:22 pm on March 12th, 2009
Hola Andres, Muy bueno tu articulo, era justamente lo que estaba buscando, ahora lo que necesito es que estos modulos que se cargan se ubiquen en el centro de la pantalla y que sean movibles, alguna idea?
No olviden entrar a confiezateya.com
2:14 pm on March 12th, 2009
Otra cosa que sería util incluirla en este post sería la posibilidad de cambiar de menu dependiendo del usuario logeado, es decir, que el menú que tu ubicaste en la interfaz principal pueda cambiarse por otro dinamicamente. Para que dependiendo del usuario logeado acceda a ciertas interfaces o a otras no.
7:42 am on March 19th, 2009
Hola, ya logré hacer las funcionalidades que mencionaba en los comentarios anteriores, lo unico que me hace falta es como hacer para que el modulo sea movible, aunque eso creo que ya es parte de cada modulo y no tiene que ver con la Shell, se me ocurre que podría hacer que el modulo llamado cargue un popUp con una TitleWindow… bueno iré a probarlo a ver que pasa.
Saludos y no olviden entrar a confiezateya.com está buenisima.
8:55 am on November 14th, 2009
Muy bueno el comentario, los fuentes no descargan. Saludos.