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
