Flash CS4 profesional 18 – Programación orientada a objetos

El lenguaje ActionScript es un lenguaje orientado a objetos. La programación orientada a objetos (PPO o OOP: Object-Oriented Programming) es un tipo de programación que se basa en las clases y en las instancias.

Una clase es una plantilla o modelo que permite definir a un objeto, mientras que una instancia es la representación de un objeto. Las clases constan de propiedades, que permiten definir los atributos, y los métodos, que son funciones o comportamientos asociados a la clase, que devuelven algún valor o realizan alguna acción sobre el objeto.

De las clases se crean las instancias; en el caso de un coche, por ejemplo, cada instancia de la clase sería un coche en particular. Sobre las instancias podemos ejecutar los métodos de la clase. En el caso del coche, se puede por ejemplo, sobre una instancia de un coche de color rojo ejecutar el método girar, para girar el volante del coche hacia un lado, y con acelerar, se puede dar velocidad al coche.

En la programación orientada a objetos también aparece el concepto de evento, que es un hecho o suceso al que se responde con un código. Hay eventos en los que interviene el usuario (pulsar un botón de la página web con el ratón…) pero hay eventos que no dependen de la interacción del usuario (como por ejemplo, puede existir un evento que determine cuando finaliza la carga de una imagen externa en una película).

Además de ser un lenguaje orientado a objetos, ActionScript dispone de una gran cantidad de clases predefinidas, organizadas en paquetes, que se pueden usar para acceder y manipular cierto tipo de información. Por ejemplo, la clase Math se utiliza para acceder a constantes y realizar operaciones matemáticas (calcular el coseno o el logaritmo de un número…), la clase Array para utilizar matrices…

Un ejemplo claro de lo comentado hasta ahora, es cambiar el color de una instancia de clip de película, utilizando la clase ColorTransform (que está en el paquete flash.geom). Más concretamente que el color de la instancia cambie en función de los valores que sean introducidos en los bloques de texto. Lo primero que hay que hacer es seleccionar el primer fotograma de la capa eventos y abrir la ventana de eventos. Luego hay que escribir el Detector de eventos del botón para el evento CLICK, es decir, la función que gestionará este evento, que contiene el código que se ejecutará al hacer clic en el botón. En la ventana eventos se ha de escribir el siguiente código:

btnCambiar.addEventListener(MouseEvent.CLICK, btnDetector);

function btnDetector(evento:MouseEvent):Void {

     var colorElegido:ColorTransform = new ColorTransform();

     colorElegido.color = Number(txtAzul.text) + (Number(txtVerde.text)*256) +  (Number(txtRojo.text)*256*256);

La mayoría de las clases necesitan crearse previamente antes de ser utilizadas. Para ello se utiliza el operador New. Al usar el operador New tenemos que introducir el constructor de una clase, el cual es un método especial que sirve para crear una instancia de dicho tipo. En nuestro ejemplo en el tercer parágrafo se ha creado una instancia de la clase Colortransform llamada ColorElegido. Este nuevo objeto ColorElegido tendrá las propiedades y los métodos del objeto predefinido ColorTransform. A través de este objeto se cambiará el color de la instancia de clip de película comentada anteriormente.

Para acceder a las propiedades o métodos de un objeto se utiliza el operador de punto (.): primero se escribe el nombre del objeto, seguido del operador de punto (.) y seguido la propiedad o método al que se quiere acceder o se quiere utilizar.

Con esto al final se conseguirá cambiar el color de una instancia durante la reproducción de la película.

Otras clases de ActionScript son Keyboard y KeyboardEvent que se utilizan para responder a los eventos que realiza el usuario a través del teclado, pudiendo realizar determinadas acciones al pulsar las teclas definidas y adecuadas. Pueden existir dos tipos de evento de teclado: KeyboardEvent.KEY_DOWN y KeyboardEvent.KEY_UP, que representan la acción de presionar una tecla y de soltarla. Para gestionar los eventos de teclado se puede crear un detector de eventos asociado al escenario, para detectar las pulsaciones de teclas de toda la película.

La clase MovieClip se utiliza para controlar las instancias de clip de película en el escenario. Recordemos que cada película tiene su línea de tiempo, y que estas diferentes líneas de tiempo se pueden comunicar entre ellas. A su vez, en cada película puede haber instancias de clip de película, que también tienen su propia línea de tiempo, las cuales se pueden manejar a través del código ActionScrip. Y a su vez, dentro de estos clips de película (principal) pueden existir otros clips de película (secundarios), éstos últimos también tienen su propia línea de tiempo. Esto hay que tenerlo en cuenta al utilizar botones que pulsándolos detienen la película, porque se ha de establecer que no solamente se detenga la línea de tiempo del clip de película principal sino también la línea de tiempo de los clips de película secundario o secundarios (se ha de ejecutar el método Stop para cada una de las instancias que existen).

Los clips de película son los objetos más importantes de Flash y permiten crear una interactividad con el usuario con un nivel de complejidad elevado.

Anuncios

Acerca de Yolanda Muriel
Arquitecta, ingeniera de edificación y Arquitecta técnica Barcelona, España

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

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

Google+ photo

Estás comentando usando tu cuenta de Google+. 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 )

w

Conectando a %s

A %d blogueros les gusta esto: