Imagine que você tem um componente qualquer dentro de outro componente (por
exemplo, um TabNavigator dentro de um Canvas). O TabNavigator é filho do
Canvas.
Quando você cria um evento que será disparado, o segundo parâmetro (bubble)
especifica se ele deve (true) ou não (false) "escalar" a hierarquia. Ou
seja, quando o evento for disparado no TabNavigator que citei, ele vai
"subir" para o componente pai, o Canvas, e depois para o pai dele, e assim
sucessivamente, até chegar ao Application.

Dessa forma, o "listener" deve ser adicionado em algum lugar por onde o seu
evento vai "passar". Caso contrário, você pode adicionar o listener
diretamente no componente que vai disparar o evento, desde que seja possível
fazer isso de forma que não aumente o acoplamento entre esses objetos.

No meu blog tem um exemplo do "básico" sobre eventos:
http://www.elvis.eti.br/2008/02/11/eventos-personalizados-no-flex/

Espero ter esclarecido.

Abraço!

Elvis Fernandes


2009/1/26 Lorenzi <[email protected]>

>
> Elvis nao entendi. Como funciona o esquema de filho, o que eu fiz foi
> 2 modulos 1 que é o modulo envia e outro o modulo recebe?
>
> On 26 jan, 08:37, Elvis Fernandes <[email protected]> wrote:
> > O módulo que dispara é filho do que escuta?
> > Repare que você adicionou o listener no próprio módulo que você designou
> > como "o que recebe". Dessa forma, o que dispara precisa ser filho dele
> para
> > que o evento possa ser capturado.
> >
> > Se não for, você pode fazer
> moduloQueDisparaEvento.addEventListener(......),
> > entendeu? Adiciona o listener direto no objeto que vai disparar o evento.
> >
> > Elvis Fernandes
> >
> > On Mon, Jan 26, 2009 at 7:18 AM, Lorenzi <[email protected]> wrote:
> >
> > > Bom dia.
> >
> > > Pessoal poderiam me ajudar numa duvida, tenho dois modulos um dispara
> > > o evento e o outro escuta, mas o modulo que escuta nao esta recebendo:
> >
> > > Modulo envia:
> > >  private function retorno(e:Event):void{
> > >                idade = e.currentTarget.selectedItem.idade;
> > >                nome =  e.currentTarget.selectedItem.nome;
> > >                dispatchEvent(new Event('eventoTeste',true,true));
> > >                Application.application.CarregaModulo.url =
> "brteste2.swf";
> > >                Application.application.CarregaModulo.loadModule();
> > >            }
> >
> > > Modulo recebe:
> > > rodo a funcao init no creationcomplet.
> > >     private function init():void{
> > >        addEventListener('eventoTeste',eventoCapturado);
> > >     }
> > >     private function eventoCapturado(e:Event):void{
> > >        Alert.show("ok");
> > >     }
> >
> > > Grato.
> >
>

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a