É... realmente já usei em um projeto teste a maneira q expliquei no começo,
mas isso é pq meu swiz está "modificado"
Anulei a parte de verificacao da constante na classe target, isso pode ser
feito em ClassConstant:99 no source do swiz.
Mas nao cheguei a usar em produção.. nao lembro o pq do motivo... boa hora
pra voltar aos estudos :)

[]'s




Em 29 de junho de 2011 11:33, Fredy Gadotti <[email protected]> escreveu:

> 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
>



-- 
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

Responder a