Flex: Paso de variables entre Módulos
25
Jun/086
Jun/086
Suponiendo que necesitamos pasar de una pantalla a otra el valor de un numero por ejemplo (puede ser un id dentro de la tabla), dentro de la aplicación principal deben agregar una variable para guardar esta información (el código siguiente no esta completo):
Inicio.mxml:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ public var id_modulo:int; // Esta es la variable donde guardaré el valor ...... ]]> </mx:Script> .... </mx:Application>
Modulo1.mxml:
Ahora queremos que al hacer click en un botón "Siguiente" guarde el valor del id que necesitamos.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ private function Funcion_Click_Boton_Siguiente():void { // Aquí guardamos nuestro valor en la aplicación principal, // después lo obtendremos de la misma forma Application.application.id_modulo = 10; // Después de guardar, nos cambiamos al siguiente modulo Application.application.CargaModulo("Modulo2"); } ...... ]]> </mx:Script> <mx:Button label="Siguiente" click="Funcion_Click_Boton_Siguiente()" /> </mx:Application>
Modulo2.mxml:
Ahora pedimos a la aplicación principal el valor previamente guardado y lo mostramos como una alerta cuando carga la aplicación, dentro de Application se define initialize para utilizar una función al momento de cargar un módulo.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="CargarInicio()"> <mx:Script> <![CDATA[ // Necesario para poder utilizar el pop-up de alerta import.mx.controls.Alert; // Bindable se utiliza sólo si necesitan utilizar la variable // como valor en algún componente // Si no lo van a utilizar para eso, descartenlo [Bindable] private var id_a_utilizar:int; public function CargarInicio():void { id_a_utilizar = Application.application.id_modulo; Alert.show("Mi variable tiene el valor: " + id_a_utilizar); } ...... ]]> </mx:Script> .... </mx:Application>
9:06 pm on October 28th, 2008
Good for people to know.
10:58 pm on November 6th, 2008
COMO HAGO PARA QUE UN MODULO TENGA UNA CIERTA POSICION DENTRO
DEL CARGADOR DE MODULOS Y NO ME QUEDE PEGADO AL LADO DERECHO
DEL CARGADOR???????????????????????
7:06 am on November 20th, 2008
Hola XCOM…
Debes especificar sus propuedaes x, y, o usar contrains o algo así en el layout del module loader… con un canvas o algo asi…
Yo tengo un problema pero con el centrar un popup respecto a la aplicación y no respecto al módulo desde donde lo cargo..
12:40 pm on January 3rd, 2010
existe alguna forma para acceder a las variables sin necesidad de usar Application.application ???
Quizás enviando los parámetros directamente al PopUp o que el popup los obtenga de otra forma???
10:05 am on January 28th, 2010
Juan Felipe, revisa este post nuevo: http://andres.villagranquiroz.cl/2010/01/comunicacion-entre-componentes-modulos-utilizando-singleton/