jump to navigation

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.

About these ads

Comentarios»

1. WiZiTo - marzo 9, 2007

Realmente encantado de poder leerte :) y seguir aprendiendo cosas ;)

Un saludo!!

2. API Reflexion en Flex (segunda parte) « think different, think flex - marzo 11, 2007

[...] 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 [...]

3. kulinux - abril 23, 2007

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

4. ablesa - abril 23, 2007

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.


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: