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 -~----------~----~----~----~------~----~------~--~---
