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

Responder a