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