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

Responder a