| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/10/2009 10:35:48
|
Andre_JavaWorld
JavaTeenager
![[Avatar]](/images/avatar/b6770af9bf892b0d4dbbc1aa5a3201a4.jpg)
Membro desde: 29/06/2007 12:48:07
Mensagens: 166
Localização: Saint Cyr L'ecole, France
Offline
|
Bom dia Pessoal,
Estou precisando disparar eventos entre um titlewindow e outro... na verdade um titlewindow é responsavel por coletar alguns dados do usuario, e o outro deve exibir informacoes especificas sobre o mesmo, o que quero fazer entao é, disparar um evento contendo as informacoes do usuario entradas na janela a, e capturar o evento na janela b, mas quando faco o seguinte na janela a:
nao consigo caputar o evento na janela b
Alguem sabe como posso estar disparando um evento de uma janela para que a outra consiga captura-lo?
Abraços
André Martins
|
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/10/2009 10:59:00
|
Jesuino Master
GUJ Ranger
![[Avatar]](/images/avatar/a5218f5fe0d71d13cc6a092c36a73e08.png)
Membro desde: 12/02/2009 08:40:06
Mensagens: 783
Offline
|
Adicione o mesmo evento listener para as duas janelas!
Não crie uma nova instância com o New, crie uma só e referencie nas duas Janelas...
EDIT: Provavelmente me confundi(Swing), não sei se o que falei é válido
This message was edited 1 time. Last update was at 12/10/2009 11:00:20
|
William Antônio Siqueira
Analista de Suporte
Blog e Twitter
Site Pessoal
Projetos? Idéias? Críticas? MP!
Não tome uma opinião como verdade absoluta! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/10/2009 08:09:24
|
andre.gil
JavaBaby
![[Avatar]](/images/avatar/e965af4bd5780161f17d2bea7f7a2581.jpg)
Membro desde: 01/10/2009 09:08:15
Mensagens: 81
Offline
|
Bom dia Andre,
Acredito que o problema seja em como você está adicionando o listner ou disparando o evento. Quando você cria um listner na Janela B e dispara o evento na Janela A, a Janela B não vai capturar esse evento pois ele foi disparado na Janela A somente. O ideal seria que você disparasse o evento na Janela A e capturasse ele na "Janela Pai", onde os dois componentes se encontram. Ai da Janela Pai, você chama o método da Janela B que vai fazer o que você quer.
Um outro modo de fazer, só que meio incorreto pois dificulta a manutenção da aplicação, seria adicionar o listner e disparar o evento no pai das janelas. Usando parent.addEventListner e depois parent.dispatchEvent.
Espero ter ajudado.
[]s
|
André Gil
www.dclick.com.br
blog.dclick.com.br
http://andregil.net/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/10/2009 08:06:15
|
Thiago Felix
HelloWorld
![[Avatar]](/images/avatar/3d08de9c499c511170da6654c84cf611.jpg)
Membro desde: 29/09/2009 12:34:23
Mensagens: 11
Localização: São Paulo
Offline
|
Andre.
Complementando o que o Gil disse.
Imagine que os componentes de vizualização que voce inclui na sua aplicação flex são gerenciados em forma de arvore, esta arvore é chamada de display list. Ex.
->Application
----->TitleWindowA
---------->Button
---------->Form
---------->etc...
----->TitleWindowB
---------->ControlBar
---------->Panel
---------->etc.
Tendo isso em mente ajudará a intender como funciona o "Event Flow" ( Fluxo do Evento ) do flex.
Event Flow: Quando você dispara um evento, ele passa por 3 fase (Capturing, Targeting, Bubbling) nesta ordem, em cada uma destas fazes os nós da arvore (descrita acima) podem reagir de alguma maneira, ou seja, podem executar alguma tarefa/método. Durante a fase de "capturing" o evento passa por cada elemento da display list seguindo a order parent-child verificando se há algum listener até chegar no objeto que originou o evento ( ou seja, o objeto que disparou o evento). A fase de "targetting" o flex irá notificar somente os "event dispatcher's listeners" que são os listeners que estão diretamente relacionado ao responsável por criar o evento. E por ultimo a fase "bubbling" onde o flex percorre os nós da display list na order child-parent à partir do objeto que lançou o evento até o primeiro nó da arvore executando os listeners de cada um.
Baseado na idéia de Event Flow em alguns tipos de eventos você consegue executar o mesmo listener em 3 diferentes fases. Existem algumas regras, pois nem todos eventos podem ser capiturados durante a fase de "capturing", e nem todo objeto pode fazer listener durante a faze de bubbling. Para saber todos os detalhes vale a pena dar uma olhada na documentação da Adobe que é muito detalhada nesta parte de eventos e tirar todas as suas duvidas.
Event
Event Propagation
This message was edited 1 time. Last update was at 14/10/2009 08:08:46
|
Thiago Felix
www.dclick.com.br
blog.dclick.com.br |
|
|
 |
|
|
|
|