FLEX: Reflexão com ActionScript 3


Precisei fazer reflexão com actionscript3, que era basicamente, descobrir o tipo de um atributo da classe, e se ele for composto - tipo definido em minha aplicação - eu precisaria gerar uma nova instância.

Precisei disso, pois estava montando alguns componentes genéricos, e depois de estudar um bocado e atormentar o Mário Júnior, veio a luz.

Então, desenvolvi o seguinte método:

Actionscript:
  1. /**
  2. * Pega o retorno de uma propriedade de um objeto.
  3. *
  4. * @param obj - Objeto que têm a propriedade
  5. * @param property - Propriedade que deseja pegar o retorno.
  6. * @return Classe do objeto.
  7. * @author Pedro Gonçalves
  8. */
  9. public static function getType(obj:Object,property:String):Class {
  10. var xmlDescription:XML = describeType(obj);
  11. var val:XMLList = xmlDescription.variable.(@name==property);
  12. var type:String = String(val.attribute("type")).replace("::",".");
  13. var clazz:Class = Class(getDefinitionByName(type));
  14. return clazz;
  15. }

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
FLEX: Instanciar objeto a partir da classe
Post rápido: Neo versão 3.4

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

[…] O primeiro passo foi descrito num post anterior: http://pedrogoncalves.com.br/2008/07/07/flex-reflexao-com-actionscript-3/  […]