Mário, Seu blog voltou? Outro fator que me faz preferir as libs de reflexão é o cache que elas fazem. Att.,
*Daniel R. C. Frank, **Analista de Sistemas, Projetus Informática* Tel: (32) 2101-6400 * fr...@projetusinformatica.com.br *| www.projetusinformatica.com.br [image: Twitter] <http://www.twitter.com/projetus> <http://www.twitter.com/projetus> <http://www.twitter.com/projetus> <http://www.twitter.com/projetus> <http://www.projetusinformatica.com.br/> Em 27 de janeiro de 2011 11:40, Daniel Rodrigues da Cunha Frank < fr...@projetusinformatica.com.br> escreveu: > Ainda em tempo. > Eu ainda não testei, mas existe uma API de reflection no projeto > as3-commons http://www.as3commons.org/ > > Att., > > *Daniel R. C. Frank, **Analista de Sistemas, Projetus Informática* > > Tel: (32) 2101-6400 * > fr...@projetusinformatica.com.br *| www.projetusinformatica.com.br [image: > Twitter] <http://www.twitter.com/projetus><http://www.twitter.com/projetus> > > <http://www.twitter.com/projetus> > <http://www.twitter.com/projetus> > > > > <http://www.projetusinformatica.com.br/> > > > > > Em 27 de janeiro de 2011 11:33, Daniel Rodrigues da Cunha Frank < > fr...@projetusinformatica.com.br> escreveu: > >> Herberth, >> >> Para reflexão em AS3 eu tenho utilizado a* Reflection API* do Spicelib ( >> http://www.spicefactory.org/). >> Inclusive essa foi uma dica que encontrei no finado blog do Mário Junior. >> Att., >> >> *Daniel R. C. Frank, **Analista de Sistemas, Projetus Informática* >> >> Tel: (32) 2101-6400 * >> fr...@projetusinformatica.com.br *| www.projetusinformatica.com.br [image: >> Twitter] <http://www.twitter.com/projetus><http://www.twitter.com/projetus> >> >> <http://www.twitter.com/projetus> >> <http://www.twitter.com/projetus> >> >> >> >> <http://www.projetusinformatica.com.br/> >> >> >> >> >> Em 27 de janeiro de 2011 09:59, Mário Júnior <juninho...@gmail.com>escreveu: >> >> O famoso "for in" para descobrir atributos de objetos só funciona com >>> Object criados dinamicamente, em tempo de execução, e sem tipagem forte. >>> >>> Por exemplo: >>> >>> var p : Object = new Object(); //ou var p : Object = {nome: 'Mario', >>> idade: 27}; >>> p.nome = "Mario" >>> p.idade = 27 >>> >>> for (var atributo:String in p) { >>> trace (atributo + ": " + p[atributo]); >>> } >>> >>> Isso funciona!! Agora, se eu tiver uma classe Pessoa, e eu instanciar um >>> objeto dessa classe (fortemente tipado), não funciona: >>> >>> var p : Pessoa = new Pessoa(); >>> p.nome = "Mario" >>> p.idade = 27 >>> >>> for (var atributo:String in p) { >>> //nesse caso, nem entra no for :( >>> trace (atributo + ": " + p[atributo]); >>> } >>> >>> >>> Sendo assim, a UNICA maneira é usando describeType() >>> >>> var described:XML = describeType(p); >>> >>> //described.variable retorna um XMLList >>> for each (var variable:XML in *described.variable*) { >>> var attr:String = variable.@name; >>> trace(attr + ": " + p[attr]); >>> } >>> >>> >>> Se sua classe tiver atributos PUBLICIOS, entao vc usa o "*variable*" no >>> describeType para acessar as variaveis. >>> Agora, se sua classe for de atributos PRIVADOS com getter e setter, então >>> vc usa *described.accessor* >>> >>> *Agora: Cuidado com a pegadinha do Sérgio Malandro!!!* >>> * >>> * >>> *Se sua classe só tiver atributos PUBLICOS, mas conter a metadata >>> [BINDABLE] encima dela, *o mxmlc (Compilador do Flex) irá 'transcrever' >>> sua classe para atributos privados com getters e setters ANTES DE GERAR o >>> swf (em processo de compilação - compile time) ... portanto, vc só poderá >>> usar o *described.accessor *para acessar os atributos em runtime, >>> enquanto o described.variables nao retorna nada (no caso, nem entra no for >>> acima). >>> >>> Links importantes: >>> http://bit.ly/ffGT8h >>> http://bit.ly/fr5Ln5 >>> >>> YEAH - YEAH!! >>> >>> []'s >>> >>> >>> >>> >>> Em 27 de janeiro de 2011 09:27, Herberth Amaral < >>> herberthama...@gmail.com> escreveu: >>> >>> Olá pessoal, >>>> >>>> Estou desenvolvendo uma lib e preciso utilizar os recursos de >>>> reflection do ActionScript3 para pegar todos os objetos (especialmente >>>> widgets) de uma aplicação/módulo/componente. Tentei utilizar o for .. >>>> in, for each .. in e o describeType para me retornar ao menos o ID, >>>> mas ele nem ao menos entra no loop. >>>> >>>> Alguem tem alguma sugestão? >>>> >>>> P.S: tou usando o flex 3 pra testar. >>>> >>>> -- >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >>>> Para sair da lista, envie um email em branco para >>>> flexdev-unsubscr...@googlegroups.com >>>> 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 flexdev@googlegroups.com >>> Para sair da lista, envie um email em branco para >>> flexdev-unsubscr...@googlegroups.com >>> 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 flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev