Fico no aguardo da resposta, que também estava curioso por uma implementação
mais genérica para esses casos que acabam se repetindo bastante.

2011/6/29 Mário Júnior <[email protected]>

> OWWwww... vc tem razao!!!!
>
> Vou ver como eu fiz num projeto anterior, mas provavelmente eu nao usei
> const e deixei como var mesmo.... embora a idéia da const seja nao mudar o
> valor, fica para o dev a responsa de nao alterar o valor.
>
> Vou pesquisar mais tarde e mando aqui, sei q já fiz algo parecido... valeu
> o alerta :)
>
>
>
> []'s
>
>
>
>
>
> Em 29 de junho de 2011 11:18, Fredy Gadotti <[email protected]> escreveu:
>
> 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
>>
>
>
>
> --
> 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