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!



-- 
Clayton Marques Pereira






Novo Internet Explorer 8: traduza com apenas um clique. Baixe agora, é grátis!


-- 
Clayton Marques Pereira





                                          
_________________________________________________________________
Você sabia que pode acessar o Messenger direto do seu Hotmail? Descubra como!
http://www.microsoft.com/brasil/windows/windowslive/products/tutoriais.aspx
--~--~---------~--~----~------------~-------~--~----~
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