Andrés Villagrán Placencia Flex / AS3 / Papervision3D / PHP / Rails Developer

25Jun/089

Flex: Paso de variables entre Módulos

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:

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  2. <mx:Script>
  3. <![CDATA[
  4. public var id_modulo:int; // Esta es la variable donde guardaré el valor
  5. ......
  6. ]]>
  7. </mx:Script>
  8. ....
  9. </mx:Application>

Modulo1.mxml:
Ahora queremos que al hacer click en un botón "Siguiente" guarde el valor del id que necesitamos.

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
  2. <mx:Script>
  3. <![CDATA[
  4. private function Funcion_Click_Boton_Siguiente():void {
  5. // Aquí guardamos nuestro valor en la aplicación principal,
  6. // después lo obtendremos de la misma forma
  7. Application.application.id_modulo = 10;
  8.  
  9. // Después de guardar, nos cambiamos al siguiente modulo
  10. Application.application.CargaModulo("Modulo2");
  11. }
  12. ......
  13. ]]>
  14. </mx:Script>
  15. <mx:Button label="Siguiente" click="Funcion_Click_Boton_Siguiente()" />
  16. </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.

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="CargarInicio()">
  2. <mx:Script>
  3. <![CDATA[
  4. // Necesario para poder utilizar el pop-up de alerta
  5. import.mx.controls.Alert;
  6. // Bindable se utiliza sólo si necesitan utilizar la variable
  7. // como valor en algún componente
  8. // Si no lo van a utilizar para eso, descartenlo
  9. [Bindable]
  10. private var id_a_utilizar:int;
  11.  
  12. public function CargarInicio():void {
  13. id_a_utilizar = Application.application.id_modulo;
  14. Alert.show("Mi variable tiene el valor: " + id_a_utilizar);
  15. }
  16. ......
  17. ]]>
  18. </mx:Script>
  19. ....
  20. </mx:Application>
Comments (9) Trackbacks (1)
  1. Good for people to know.

  2. 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???????????????????????

  3. 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..

  4. 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???

  5. como llamo una pantalla a otra mediante un click a un boton

  6. Mil gracias por compartir. . . .

  7. Carlos Sol
    Espero te sirva lo siguiente . . .
    Creas un componente MXML en el mismo proyecto Flex que estes trabajando para este Ejemplo se llamara Busqueda mi componente.

    Ahora en tu actionScript creas una funcion que tenga el siguiente codigo:

    public function abrirVentana():void{

    var ventana : Busqueda = new Busqueda();
    PopUpManager.addPopUp(ventana,this,true);
    PopUpManager.centerPopUp(ventana);
    }

    Y esa funcion la llmas desde tu boton

    Ojala te haya ayudado
    Saludos

  8. Hola, me gustaria saber como poner una ur en una imagen, quiero ir a un modulo de mi programa ero solo dando click en la imagen, solo que n puedo poner solo la url ya que no importa en que modulo este a url siempre sera la misma, me podrias ayudar


Leave a comment