Valeu pela indicação de libs galera, mas nesse trabalho eu tenho que evitar ao máximo usar dependências externas.
On Jan 27, 11:45 am, Daniel Rodrigues da Cunha Frank <[email protected]> wrote: > 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 * > [email protected] *|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 < > [email protected]> 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 * > > [email protected] *|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 < > > [email protected]> escreveu: > > > Ainda em tempo. > >> Eu ainda não testei, mas existe uma API de reflection no projeto > >> as3-commonshttp://www.as3commons.org/ > > >> Att., > > >> *Daniel R. C. Frank, **Analista de Sistemas, Projetus Informática* > > >> Tel: (32) 2101-6400 * > >> [email protected] *|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 < > >> [email protected]> 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 * > >>> [email protected] *|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 > >>> <[email protected]>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 < > >>>> [email protected]> 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 > >>>>> [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 emhttp://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
