Reflexion en Flex y ActionScript 3 Marzo 7, 2007
Posted by ablesa in flex.trackback
Siempre me ha gustado sobremanera la posibilidad de algunos lenguajes de programación de, a través del nombre de una clase, poder llevar a cabo la creación e invocación de los métodos de la misma. Esta y otra serie de posibilidades en torno a esta característica del lenguaje se conoce como Reflexión.
En todos los años que llevo programando en java he utilizado esta característica en múltiples ocasiones , y una enorme cantidad de frameworks (Struts 2.0, Spring, EJB 3.0, WebWork, Hibernate, etc, etc…. ) la utilizan en alguna parte de su funcionamiento.
Todos estos frameworks tienen en común la característica de actuar como contenedor de componentes, acciones, recursos , en definitiva parte de la lógica de nuestra aplicación que queremos manejar. Además de alojar estos componentes , estos contenedores controlan el ciclo de vida de los mismos y responden ante determinadas circunstancias del entorno en el que se ejecutan, tomando la iniciativa en algunos momentos del ciclo de vida de la aplicación.
Sobre como llevan a cabo esta tarea y que patrones(como IoC con dependency injection y/o Service Locator) utilizan para ello tenemos mas información aqui
Volviendo al tema de la reflexion, multitud de los frameworks que he comentado antes utilizan la reflexión para gestionar el contenedor de componentes y servicios, y lanzar las acciones oportunas cuando son requeridas.
Buscando las posibilidades que ofrece Flex(ActionScript3 en particular) para realizar Reflexión encontré este articulo
Como comenta en el articlo a través de la reflexion podemos conocer los detalles de una clase en ActionScript 3, propiedades y métodos, simplemente a partir de su nombre cualificado. (técnica también conocida como introspección)
Tenemos más información sobre el paquete que nos permite realizar operaciones sobre Clases y propiedades aqui . Se trata del paquete flash.utils.
Como primer ejemplo y para no extenderme demasiado , tenemos un programa tipo HolaMundo , para hacer unas pruebas de invocación de métodos mediante reflexión , simplemente introduciendo en una caja de texto el nombre del método que queremos invocar. En este primer ejemplo como veréis en el código, se trata de un método sin parámetros y del que no capturamos la respuesta. Como veremos en posteriores ejemplos se puede invocar un método pasandole todos los parámetros necesarios como un Array , y una vez ejecutado capturar la respuesta, obteniendo el objeto que devuelve.
El ejemplo está compuesto por dos clases , un fichero mxml principal, y una Clase .as de la cual invocamos un método. El código esta muy simplificado para ejemplificar solamente la parte que nos interesa en este ejemplo.
Os podéis bajar el código completo del ejemplo para probar directamente en Flex Builder descargar codigo aqui
En posteriores post iremos ahondando en las posibilidades que nos brinda Flex en torno a la reflexión a la hora de controlar y diseñar el ciclo de vida de nuestra aplicación Flex.

Realmente encantado de poder leerte
y seguir aprendiendo cosas
Un saludo!!
[...] Reflexion en Flex (segunda parte) marzo 11, 2007 Posted by ablesa in flex. trackback En el primer post sobre el API de reflexión en Flex 2 vimos un ejemplo muy sencillo en el que se llevaba a cabo la [...]
Hola,
Hasta donde yo sé, la reflexión en flex lo que hace es describir objetos.
Esto es, si tienes un objeto con variables a null, te es imposible saber cual es el tipo de estas variables.
Si alguien sabe como hacer esto ruego me lo haga saber.
Un saludo
Hola kulinux,
Si que puedes saber los tipos de los atributos de un objeto , aunque el valor de este atributo sea null.
He dejado un ejemplo en:
http://www.angelblesa.com/examples/TestIntrospection/TestIntrospection.html
Con el botón derecho tienes la opcion “viewSource” y te puedes bajar el codigo fuente,
espero que te sirva,
saludos.