Comunidad de diseño web y desarrollo en internet online

Lanzar eventos

Citar            
MensajeEscrito el 20 Mar 2009 11:26 am
wenas, la preguanta es hay alguna forma de lanzar un evento en un modulo de una aplicaion web y recogerlo en otro modulo, me explico, ten go un listado de productos en un modulo y cuando selecciono uno guardo el indice del seleccionado, cuando yo entro otro modulo para modificar quiero que se seleccione el indice que tengo guardado, pero no se como hacer para que cada vez que entre en este segundo modulo detecte el indice, solo lo detecto la primera vez que entra en este estado que es cuando se crea y se lanzan lo eventos correspodientes, pero cuando ya esta creado no se que eventos se lanzan.

Bueno espero que alguien puede ayudarme.
Un saludo y gracias.

Por avielo

21 de clabLevel



Genero:Masculino  

Cordoba, España

msie7
Citar            
MensajeEscrito el 20 Mar 2009 03:11 pm
Para lanzar un evento

dispatchEvent(NombreEvent.CONSTANTE)

Luego quien esté interesado en subscribirse a ese evento usa:

addEventListener(NombreEvent.CONSTANTE , funcion_escucha)

Es decir el módulo 2 tiene que escuchar al módulo 1. Cuando ocurre una sola vez es porque se está escuchando eventos que se generan una sola vez en la vida de los componentes, usualmente creationComplete

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Mar 2009 04:41 pm
si, pero como hago pra que se escuchen de un modulo a otro

Por avielo

21 de clabLevel



Genero:Masculino  

Cordoba, España

msie7
Citar            
MensajeEscrito el 20 Mar 2009 05:24 pm
El módulo es básicamente una clase, que se carga en un ModuleLoader. Para hacer referencia al contenido del módulo, haces algo así

var target:MiClase = miModuleLoder.child as MiClase

Luego le agregas un listener

target.addEventListener(NombreEvent.CONSTANTE , target2.handler)

Donde target2 es una referencia al otro módulo que contruiste de la misma forma, handler es un método público de ese módulo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Mar 2009 10:19 am
Pero eso es para cuando cargas com moduleLoader, no?, yo los modulos los cargo por estados, tambien es posible?

Por avielo

21 de clabLevel



Genero:Masculino  

Cordoba, España

msie7
Citar            
MensajeEscrito el 23 Mar 2009 11:16 am
Mírate algún evento que sirva para acceder, quizás creationComplete, luego accedes por el ID que le hayas dado a tu módulo

Jorgee

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Mar 2009 11:40 am
te dejo el codigo que tengo por que yo debo de ser muy torpe por que no me entero.

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
   <mx:Script>
      <![CDATA[
                  
                  
                  
         private function cambia():void {
              var target:modificarProductos;
            
               Application.application.PedidoAux=gridProductos.selectedItem.id
               target.dispatchEvent(new ModuleEvent('actualiza'));                                         }
      ]]>
   </mx:Script>   
    
   <mx:DataGrid id="gridProductos" change="cambia()"}">
      <mx:columns>
      </mx:columns>
   </mx:DataGrid>
</mx:Canvas>


<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
   <mx:Script>
      <![CDATA[
                
      private function inicio():void{
                   addEventListene('actualiza',cambiaSel);
      }

                                public function cambiaSel():void {
                               //Actualiza el combo
                                }
</mx:Canvas>


la var target se que no esta bien definida pero no se como hacerlo porque no me deja ponerle id al module, me da error. haber si con el codigo ves donde puedo tener el fallo y gracias por la paciencia

Por avielo

21 de clabLevel



Genero:Masculino  

Cordoba, España

msie7
Citar            
MensajeEscrito el 23 Mar 2009 11:47 am
Lo que muestras es el code del module, el id y los eventos lo pones en el MXML del principal, no del module. Si trabajas con estados, tendrás que buscar en la parte donde declara el estado. Igual si vas a poner módulos en estados (y no cargarlos/descargarlos/reutilizarlos), considera usar simplemente componentes, son mas fáciles de usar y te evitas cargas externas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.