Em tempo (de novo...heheeh), O Jens já prometeu alterar o describeType da API de reflexão da Spicelib para o describeTypeJSON da avmplus que é muito mais rápida. 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:43, Daniel Rodrigues da Cunha Frank < fr...@projetusinformatica.com.br> escreveu: > 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