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

Responder a