Mário, até iria sugerir isso, mas as constantes não são herdadas quando uma classe estende outra, logo o EventHandler não encontraria a constante e nem iniciaria o projeto.
Fiquei pensando em alguma coisa para usar alguma interface, ou algo do gênero, mas não me veio nada na cabeça também. Att, Fredy. 2011/6/29 Mário Júnior <[email protected]> > O Swiz, a partir da versao 1.1, faz a distinção dos eventos levando em > conta tanto o type (String da constante) como também o TIPO DA CLASSE de > Evento. > > Sabendo disso, Vc pode fazer assim: > > > //Criar uma classe que define os eventos em comuns > public class CRUDEvents extends Event { > public static const SALVAR : String = "SalvarEvent"; > .... > > } > > > //Criar uma classe de eventos específica para tais cadastros q extendem dos > eventos em comum... > //Uma para o cadastroA > public class CadastroAEvent extends CRUDEvent { > > } > > ////Outra para o cadastroB > public class CadastroBEvent extends CRUDEvent { > > } > > > e nos métodos que vc irá mediar os eventos, vc declara as metadatas > > [EventHandler(event="CadastroAEvent.SALVAR")] > public function salvaCadastroA():void { .... } > > E, se quiser em outra classe pode usar ... REPARE que a classe de Evento é > diferente da anterior > [EventHandler(event="CadastroBEvent.SALVAR")] > public function salvaCadastroB():void { .... } > > > e na hora de disparar vc faz: > > //evento 1 > var evt : CadastroAEvent = new CadastroAEvent(CadastroAEvent.SALVAR); > dispatchEvent(evt); > > //evento 2 > var evt : CadastroBEvent = new CadastroBEvent(CadastroBEvent.SALVAR); > dispatchEvent(evt); > > > > Repare que os dois eventos ("CadastroAEvent" e "CadastroBEvent") usam a > MESMA constante "SALVAR", logo o type (String) é o mesmo para os dois. > Naturamente o Flash Player executaria os dois métodos, certo? Mas o Swiz é > esperto.. garoto inteligente... no momento q um evento é disparado, ele irá > interceptar o evento e por reflexão ele identificará qual o TIPO DA CLASSE > do evento e entao executará o método certo, e nao os dois (como se fosse o > comportamento padrao). > > > Sacou? ;) > > long life to swiz.... > > > > > > > > > > > > > > > > > Em 29 de junho de 2011 09:00, Leonardo Ribeiro > <[email protected]>escreveu: > > Pessoal, >> >> Estou usando o Swiz para o desenvolvimento de um novo projeto e existem >> alguns "cadastrinhos auxiliares" que por exemplo a tela tem apenas um ou >> dois campos como 'Descrição' e/ou 'Sigla'. >> Bem, supondo que tenho os "cadastrinhos" A e B, eu tenho no meu projeto as >> classes: >> >> CadAEvent e CadBEvent mas ambas as classes tem as "mesmas" >> informações...como segue >> >> public static const SAVE:String = "CadAEvent .SAVE"; >> public static const SAVE_CALLBACK:String = "CadAEvent .SAVE_CALLBACK"; >> public static const REMOVE:String = "CadAEvent .REMOVE"; >> public static const REMOVE_CALLBACK:String = "CadAEvent >> .REMOVE_CALLBACK"; >> public static const SEARCH:String = "CadAEvent .SEARCH"; >> public static const SEARCH_CALLBACK:String = "CadAEvent >> .SEARCH_CALLBACK"; >> >> Para o CadBEvent é a mesma coisa somente mudando de CadAEvent.SAVE >> para CadBEvent.SAVE, e etc... >> >> O mesmo ocorre para os PM e Controller. Claro que cada um chama seu >> respectivo "save", "remove" etc.. >> Mas a estrutura eu acabo fazendo um Ctrc+C Ctrc+V mesmo e só faço pequenas >> alterações, como mudar o >> prefixo do nome do Event de CadAEvent para CadBEvent... >> >> Eu até pensei em criar a classe "CadastrinhosEvent" com SAVE, REMOVE, etc, >> mas se ambos os controllers >> mediarem o mesmo event da problema né? >> >> Tem alguma forma de eu criar uma classe padrão sem ter que ficar >> praticamente fazendo Ctrc+C Ctrc+V ? >> >> -- >> []'s >> Leonardo >> >> Linux User #488650 >> Ubuntu User #27045 >> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece >> >> -- >> 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 > > > > > -- > Mario Junior > http://blog.mariojunior.com/ > @mariojunior > > -- > 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 > -- 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
