Cara....
duas duas janelas estão contidas no mesmo nível de hierarquia da
displayList?

Se nem souber oq é isso... daí vc vai apanhar muito com eventos.
Lembre q os eventos navegam pelas camadas de "baixo para cima" nessa
hierarquia. Se vc tem duas janelas na mesma ordem, uma NUNCA vai ouvir a
outra... A MENOS que elas tenham algo em comum, mas daí o listener tem q ser
adicionado nesse objeto em comum (pode ser o parent que o Clayton sugeriu,
embora fique um pouco acoplado e isso também te obrigue que o parent entre
as duas janelas seja SEMPRE o mesmo objeto, ou seja.. reusabilidade
comprometida).

Outra ideia seria centralizar isso numa classe unica (singleton) que extends
de EventDispatcher. Isso permitirá a essa classe q ela amarre listeners e
que tb dispare seus eventos personalizados. Assim vc usaria essa classe para
transportar os objetos de *qualquer lugar *da sua app* para qualquer outro
lugar* onde esse mesmo singleton conter um listener. A idéia é semelhante ao
pattern "proxy" onde vc pode centralizar todos seus custom events em um
unico "meio de transporte".

Nao gosto muito dessa tecnica, mas pode ser util em alguns casos!(ja tive q
usa-la, e tb te poupa usar eventos borbulhados ou ter varios dispatchEvents
desnecessários).

Enfim... só mesmo tendo a ideia de eventos compreendida é q te sugiro a
partir para algo do tipo.




2009/10/12 Clayton <marquesclayt...@gmail.com>

> [Event(name="addTelefoneEvent",
> type="fr.globalit.realtx.events.AddTelefoneEvent")] // Isto deve estar no
> form que dispara o evento e não no que escuta, ou seja no
> FormAdicionarTelefone;
>
>
> dispatchEvent(new AddTelefoneEvent(telefone,
> AddTelefoneEvent.ADD_TELEFONE_FUNCIONARIO, true)); // isto deve ser alterado
> pois está errado. Mude para:
>
> dispatchEvent(new AddTelefoneEvent(telefone, "addTelefoneEvent", true));
>
>
>
> 2009/10/12 Andre de Souza Martins <andre_defacerbl...@hotmail.com>
>
>> Ola Clayton,
>>
>>             acho que talvez nao me expliquei direito, vamos la,
>>
>>             vou definir melhor meu problema, tenho um componente
>> FormAdicionarTelefone, ele é um titlewindow, ele sera o formulario onde o
>> usuario ira digitar os dados de um telefone, e ao usuario clicar em salvar,
>> este deve enviar os dados do telefone para o FormCadastrarFuncionario, estou
>> tentando fazer isso via este evento,
>>
>> esta parte aqui:
>>
>> [Event(name="addTelefoneEvent",
>> type="fr.globalit.realtx.events.AddTelefoneEvent")]
>>
>> coloquei apenas no titlewindow FormCadastrarFuncionario, que é o
>> interessado em receber o evento, estou adicionando tambem o listener para o
>> evento no metodo que inicializa o componente FormCadastrarFuncionario:
>>
>> private function inicializar():void {
>>                 parent.addEventListener("addTelefoneEvent", addTelefone);
>> }
>>
>> Agora vamos ao componente FormAdicionarTelefone:
>>
>> Neste formulario o codigo mais importante é o que dispara o evento:
>>
>> dispatchEvent(new AddTelefoneEvent(telefone,
>> AddTelefoneEvent.ADD_TELEFONE_FUNCIONARIO, true));
>>
>> a parte AddTelefoneEvent.ADD_TELEFONE_FUNCIONARIO eu fiz pela seguinte
>> razao, eu quero reaproveitar o evento na tela de Cadastro de Clientes, e ai
>> terei o mesmo evento, porem com a constante ADD_TELEFONE_CLIENTE, assim
>> daria para diferenciar os dois.
>>
>> o codigo do meu evento continua o mesmo, o que devo mudar?
>>
>>
>> Abraços e obrigado pelas respostas
>>
>> André Martins
>>
>> ------------------------------
>> Date: Mon, 12 Oct 2009 16:19:31 -0300
>>
>> Subject: [flexdev] Re: [Urgente] Disparar Eventos no Adobe Flex
>> From: marquesclayt...@gmail.com
>> To: flexdev@googlegroups.com
>>
>> André tem alguns considerações neste seu código:
>>
>>
>>
>> //meto que atribui valores ao vo telefone...
>> dispatchEvent(new 
>> AddTelefoneEvent(telefone,AddTelefoneEvent.ADD_TELEFONE_FUNCIONARIO,
>> true));
>>
>> //O que está em azul substitua por "addTelefoneEvent" (com aspas), pois
>> foi assim que você colocou no name do evento quando o declarou.
>>
>> coloquei o telefone no construtor do evento.
>>
>>
>> no meu componente FormCadastrarFuncionario, que é o componente que deve
>> receber o evento, fiz o seguinte:
>> [Event(name="addTelefoneEvent",
>> type="fr.globalit.realtx.events.AddTelefoneEvent")]
>>
>> //Neste caso o que está em azul é desnecessário pois somente irá escutar o
>> evento. Isto deve estar na componente que irá disparar o evento.
>>
>> e no metodo que inicializa a classe...
>> parent.addEventListener("addTelefoneEvent", addTelefone);
>> meu handler addTelefone esta apenas mostrando um alert com o numero do
>> telefone, para eu ver que o evento foi realmente disparado, mas nao esta
>> funcionando ainda, preciso fazer mais alguma coisa? segue abaixo o codigo do
>> meu AddTelefoneEvent
>> package fr.globalit.realtx.events
>> {
>>     import flash.events.Event;
>>
>>     import fr.globalit.realtx.modelo.Telefone;
>>     public class AddTelefoneEvent extends Event
>>     {
>>         public static const ADD_TELEFONE_FUNCIONARIO:String =
>> "addTelefoneFuncionario";// Desnecessário
>>         public var telefone:Telefone = new Telefone(); // Não precisa
>> instanciar, tb não atrapalha.
>>
>>         public function AddTelefoneEvent(telefone:Telefone, type:String,
>> bubbles:Boolean=false)
>>         {
>>             super(type, bubbles);
>>             this.telefone = telefone;
>>         }
>>
>>     }
>> }
>>
>>   2009/10/12 Andre de Souza Martins <andre_defacerbl...@hotmail.com>
>>
>>   Ola Clayton,
>>
>>                 Primeiramente muito obrigado pela resposta, tentei
>> implementar mas nao esta funcionando desta forma, veja como estou fazendo...
>>
>> no componente AdicionarTelefone eu tenho o seguinte:
>>
>> //meto que atribui valores ao vo telefone...
>> dispatchEvent(new AddTelefoneEvent(telefone,
>> AddTelefoneEvent.ADD_TELEFONE_FUNCIONARIO, true));
>>
>> coloquei o telefone no construtor do evento.
>>
>> no meu componente FormCadastrarFuncionario, que é o componente que deve
>> receber o evento, fiz o seguinte:
>>
>> [Event(name="addTelefoneEvent",
>> type="fr.globalit.realtx.events.AddTelefoneEvent")]
>>
>> e no metodo que inicializa a classe...
>>
>> parent.addEventListener("addTelefoneEvent", addTelefone);
>>
>> meu handler addTelefone esta apenas mostrando um alert com o numero do
>> telefone, para eu ver que o evento foi realmente disparado, mas nao esta
>> funcionando ainda, preciso fazer mais alguma coisa? segue abaixo o codigo do
>> meu AddTelefoneEvent
>>
>> package fr.globalit.realtx.events
>> {
>>     import flash.events.Event;
>>
>>     import fr.globalit.realtx.modelo.Telefone;
>>
>>     public class AddTelefoneEvent extends Event
>>     {
>>         public static const ADD_TELEFONE_FUNCIONARIO:String =
>> "addTelefoneFuncionario";
>>         public var telefone:Telefone = new Telefone();
>>
>>         public function AddTelefoneEvent(telefone:Telefone, type:String,
>> bubbles:Boolean=false)
>>         {
>>             super(type, bubbles);
>>             this.telefone = telefone;
>>         }
>>
>>     }
>> }
>>
>> Agradecido pela ajuda!
>>
>> André Martins
>>
>> ------------------------------
>> Date: Mon, 12 Oct 2009 15:23:52 -0300
>> Subject: [flexdev] Re: [Urgente] Disparar Eventos no Adobe Flex
>> From: marquesclayt...@gmail.com
>> To: flexdev@googlegroups.com
>>
>> Crie uma classe de evento para este caso extendendo de Event.
>> Neste nova classe de evento que criou defina um objeto do tipo Object
>> mesmo, deve ser public,por exemplo:
>>
>> public obj : Object;
>>
>> No método construtor deixe apenas como parametro o type e o bubbles,
>> passando tb como parametro para o super estes dois.
>>
>> Pronto está criado sua classe de persolizada.
>>
>> Na classe,que é a janela que deve disparar o evento faça o seguinte:
>>
>> - logo após os imports, pode ser antes tb não faz diferença, apenas sugeri
>> para organização, define o seu evento da seguinte forma:
>> [Event(name="nome_do_Evento", type="o_packge.SuaClasseDeEvento")]
>>
>>
>> quando tiver que disparar este evento:
>>
>> var evento : SeuEvento = new SeuEvento("nome_do_Evento",true)   // o true
>> define que o evento irá propagar por borbulhamento;
>> evento.obj = Ojeto_Que_Ira_Para_A_Outra_Janela;
>> dispachEvent(evento);
>>
>>
>> Na janela que vc disparou adicione o listenner no parent - Isto é possível
>> por causa da propagação por borbulhamento, mesmo o evento sendo disparadopor
>> outro componente;
>>
>> parent.addEventListenner("nome_do_Evento", handler);
>>
>> no método handler defina oque deve ser executado.
>>
>>
>>
>>  2009/10/12 Andre de Souza Martins <andre_defacerbl...@hotmail.com>
>>
>>  Ola Pessoal!
>>
>>
>>                minha situacao é a seguinte, tenho duas janelas em meu
>> sistema, uma onde o usuario entra alguns dados, e outra onde estes dados
>> deverao ser mostrados, o que acontece, eu preciso que a janela a dispare um
>> evento que a janela b possa capturar... porem isto esta sendo um problema
>> para mim pois estou disparando o evento numa janela e a janela b nao
>> consegue captura-lo, consegui fazer funcionar adicionando o evento no
>> Application.application, mas ficou com cara de gambiarra demais pra mim,
>> queria algo mais independente... se possivel claro, estou usando cairngorm,
>> mas nao queria colocar estes dados no model locator, pois se trata apenas de
>> um telefone... alguem poderia dar uma luz?
>>
>>
>> Abraços Pessoal
>>
>> André Martins
>>
>> ------------------------------
>> Novo Internet Explorer 8: traduza com apenas um clique. Baixe agora, é
>> grátis!<http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN;Hotmail&utm_medium=Tagline&utm_campaign=IE8>
>>
>> --
>> Clayton Marques Pereira
>>
>>
>>
>> ------------------------------
>> Novo Internet Explorer 8: traduza com apenas um clique. Baixe agora, é
>> grátis!<http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN;Hotmail&utm_medium=Tagline&utm_campaign=IE8>
>>
>> --
>> Clayton Marques Pereira
>>
>>
>>
>> ------------------------------
>> Com o Novo Internet Explorer 8 suas abas se organizam por cor. Baixe
>> agora, é 
>> grátis!<http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmail&utm_medium=Tagline&utm_campaign=IE8>
>>
>>
>> --
>> Clayton Marques Pereira
>>
>> >>
>>


-- 
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR

Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
Florianopolis SC Brasil

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

Responder a