Vinculación de la Programación Orientada Objeto y la

Anuncio
Vinculación de la Programación Orientada Objeto y
la Programación Orientada a Eventos en el desarrollo
de Aplicaciones Multimedia.
Ing. Francisco Martín Martínez
Facultad de Ingeniería Informática, Instituto Superior Politécnico José Antonio Echeverría (CUJAE)
[email protected].
Resumen. En el vertiginoso mundo informático en que nos
encontramos sumergidos, una de las líneas de producción de
softwares con más perspectivas a escala internacional lo
constituyen las aplicaciones con contenidos multimedia. Este
entorno es un ámbito de actividad que incluye la producción de
películas, presentaciones corporativas, publicidad, libros
interactivos, software educativo, aplicaciones para Internet y un
sinnúmero de aplicaciones con los más diversos propósitos. El
presente artículo pretende vincular los paradigmas de
Programación Orientada a Objetos (POO) y la Programación
Orientada a Eventos (POE) para de esta forma lograr
aplicaciones más robustas y flexibles haciendo uso de la
herramienta Macromedia Director MX.
Palabras Claves. Programación Orientada a Objeto (POO),
programación Orientada a Eventos (POE), aplicaciones
multimedia.
I. INTRODUCCIÓN
El desarrollo de nuevas tecnologías informáticas provee de
aplicaciones y herramientas para lograr agrupar en uno o más
formatos toda la información acerca de un tema o de varios en
general. Uno de los tipos de aplicaciones que deriva como
rama de esta ciencia, son las aplicaciones multimedia. Su
relevancia está dada por la posibilidad de combinar diversos
medios como texto, sonido, video y gráficos, en una sola
aplicación, que, además, permite agregar interactividad.
Los sistemas de autor de este tipo de aplicación están
orientados a eventos de manera general, la navegación,
muestra de recursos, entre otros, son codificados en espera de
una acción ya sea del usuario o de la propia aplicación. Se
propone con este trabajo la vinculación de la POO con la
ocurrencia de los eventos mencionados, logrando unificar las
ventajas que brindan ambos paradigmas, desarrollando así
aplicaciones óptimas y mucho más robustas.
La POO facilita la creación de software de calidad por sus
factores que favorecen la extensión, la reutilización y
mantenimiento del software generado bajo este paradigma.
[1] Los primeros pasos y principios datan de la década de los
’60 y a pesar del tiempo transcurrido, sigue siendo clave en la
creación de herramientas y aplicaciones informáticas.
II. MATERIALES Y MÉTODOS
A. Paradigmas de programación referenciados.
Dentro del campo de la programación, se desarrollan
muchos paradigmas que han surgido en pasadas y actuales
épocas. El desarrollo de las nuevas tecnologías, provee cada
vez más de funcionalidades nuevas y originales, basadas en
necesidades que no satisface la no tan moderna tecnología.
Existen dos paradigmas de programación muy utilizados
actualmente por la mayoría de los desarrolladores del mundo
del software:
? Programación Orientada a Eventos.
? Programación Orientada a Objetos.
B. Programación Orientada a Eventos.
La programación dirigida u orientada a eventos, es un
paradigma de programación en el que tanto la estructura
como la ejecución de los programas, van determinados por los
sucesos que ocurran en el sistema o que ellos mismos
provoquen. [2]
Para entender la programación dirigida por eventos,
podemos oponerla a lo que no es: mientras en la
programación secuencial (o estructurada) es el programador
CCIA’2008
el que define cuál es el flujo del programa, en la
programación dirigida por eventos, es el propio usuario o el
sistema el que dirige dicho flujo. Aunque en la programación
secuencial puede existir intervención de un agente externo al
programa, estas intervenciones ocurren cuando el
programador lo haya determinado, y no en cualquier
momento, como es en el caso de la programación dirigida por
eventos. [2]
Se define un evento como las acciones del usuario sobre el
programa. Son eventos típicos el clic sobre un botón, el hacer
doble clic sobre el nombre de un fichero para abrirlo, el
arrastrar un icono, el pulsar una tecla o combinación de
teclas, el elegir una opción de un menú, el escribir en una
caja de texto, o simplemente mover el ratón.
El desarrollador de un programa orientado a eventos define
los sucesos que manipula su sistema y las acciones que se
realizan dada la ocurrencia de cada uno de ellos, lo que se
conoce como el manejador de evento. Los eventos soportados
están determinados por el lenguaje de programación que se
emplea, por el sistema operativo e incluso por eventos creados
por el mismo programador. [2]
Los lenguajes visuales orientados a eventos y con manejo
de componentes, brindan al usuario, que no cuenta con
mucha experiencia en desarrollo, la posibilidad de construir
sus propias aplicaciones utilizando interfaces gráficas sobre la
base de ocurrencia de eventos. [3] Este planteamiento reviste
gran importancia para la creación de una solución, que
ofrezca a programadores novatos, una rápida productividad.
Para soportar este tipo de desarrollo interactúan dos tipos
de herramientas, una que permite realizar diseños gráficos e
incorporar componentes previamente diseñados, así como un
lenguaje de alto nivel que permite programar acciones sobre
los eventos. Con estas herramientas se desarrollan cualquier
tipo de aplicaciones basadas en el paradigma. [3]
Existen además, los llamados programas interactivos que
exigen la intervención del usuario en tiempo de ejecución,
para suministrar datos o para indicar al programa lo que debe
hacer por medio de menús u otros componentes. Los
programas interactivos limitan y orientan la acción del
usuario. [3]
Por su parte, los programas orientados a eventos dentro de
los que se encuentran por ejemplo: Word, Excel, PowerPoint
entre otros (la mayoría de los programas que se ejecutan sobre
el sistema operativo Windows); al iniciarse quedan en espera
de las acciones del usuario que no son más que llamadas a
eventos.
En estos casos (programas mencionados) el usuario decide
si quiere abrir y modificar un fichero existente, o bien
comienza a crear un fichero desde el principio. Estos
programas, pasan la mayor parte de su tiempo en espera de
las acciones del usuario (eventos) y responden a ellas. Las
acciones que el usuario realiza en un momento determinado
son variadas y exigen un tipo especial de programación: la
programación orientada a eventos. [3]
Las aplicaciones multimedia, según se definen por el
desarrollador, son programas interactivos o programas
orientados a eventos. La aplicación puede estar enmarcada
2
por un curso secuencial bien definido por donde transita el
usuario, o concentrar todo un manejo de eventos que brinda
un amplio espectro de posibilidades y funcionalidades al
usuario final.
La gran mayoría de los sistemas de autor de este tipo de
aplicaciones son herramientas orientadas a eventos. Cuentan
de manera general con uno o varios lenguajes de
programación que incluyen instrucciones para el manejo de
eventos. El control de acciones del usuario sobre el mouse,
teclado, acciones externas e internas a la aplicación, entre
otros, se programa mediante manejadores que ejecutan
códigos deseados por el programador.
C. Programación Orientada a Objetos.
La POO es un paradigma que se basa en tres pilares
básicos:
? encapsulación y ocultación de la información.
? abstracción y clasificación.
? herencia y polimorfismo.
La encapsulación significa agrupar en una sola entidad,
datos y operaciones sobre los mismos. Evidentemente, todo
programa es una encapsulación, pero por encapsulación
queremos decir algo más preciso: en concreto, cada
componente ha de tener nada más que los datos relacionados
con un tema y su manipulación. [4]
El concepto de ocultación de la información se refiere a que
cada componente sabe lo mínimo posible de los otros y
proporciona la mínima información posible sobre sí mismo.
[4]
Desde hace muchos años, estos principios están disponibles
en los lenguajes de programación, aunque su uso es opcional.
En la actualidad muchos de los lenguajes orientados a objetos
brindan soporte sintáctico a los dos conceptos, por lo que el
uso correcto de estas definiciones es obligatorio.
Por abstracción entendemos que los módulos, a los que
aplicamos la encapsulación y la ocultación citadas, sean
representaciones abstractas de los conceptos que nos
interesan. Ahora deberemos hacerlo con todas las
características de las entidades de nuestro modelo o dominio.
[4] Se parte de esta definición para identificar que entidades
se toman en cuenta.
La herencia permite describir entidades (clases) por
diferencia entre ellas; por eso se dice que programar con
orientación a objetos es programar para diferenciar. La
utilidad de la herencia es múltiple. En primer lugar hay que
analizar, diseñar, codificar y poner a punto menos, ya que en
cuanto se tiene un concepto definido, jamás lo repetimos.
Como mucho, si el concepto nuevo es muy parecido a uno
anterior, se define el nuevo como la diferencia respecto al
anterior. Si surge un error en la utilización de la nueva
entidad, seguro que el error está en lo que se ha añadido
porque lo que se ha heredado ya se había probado. [4] Un
planteamiento presente en la generalización-especificación de
las entidades entorno al problema que se presenta.
Hay diferentes tipos de herencia: los más importantes son
simple y múltiple. Con esto se quiere decir que, al contrario
CCIA’2008
de la herencia biológica donde siempre se hereda de dos
padres, en la orientación a objetos se puede heredar de uno,
dos o más padres.
El polimorfismo significa que un nombre se utiliza para
especificar una clase genérica de acciones. [4] Por ejemplo, se
definen objetos o clases que contienen métodos de igual
nombre pero diferente implementación, este método se
especifica como una operación diferida (o virtual) en una
clase abstracta.
En el desarrollo de una aplicación OO, donde se aplican
estos conceptos, los resultados siempre son satisfactorios y
agregan valor y calidad al producto. Es este paradigma puntal
en la industria del software.
Muchos sistemas de autor vinculados a la programación,
contienen lenguajes y componentes que permiten el uso
extensivo de estos dos paradigmas, ya sea de manera
individual o vinculando su uso.
D. Aplicaciones Multimedia, tendencias y tecnologías
Actuales.
No es un secreto que la computación, a pesar de su
juventud, es una de las áreas más importantes de la
actualidad, entre otros motivos, por impulsar notablemente el
desarrollo de todas las ciencias tecnológicas. [5]
El vertiginoso desarrollo de las tecnologías informáticas y
de comunicación, cuestiona y reconfigura cada día la forma
en que se percibe la realidad y la manera de cómo las
personas se apropian y relacionan con el mundo. Dado el
rápido crecimiento hoy en día, la sociedad está en la
necesidad de modernizar y optimizar las formas de alcanzar
el conocimiento y para ello la población utiliza los mejores
métodos, entre los que se encuentran los recursos multimedia.
Por ejemplo, en el campo de la docencia, las transformaciones
tecnológicas imponen el reto, la necesidad y sobre todo, la
posibilidad de renovar las técnicas de enseñanza y el tipo de
material docente que se pone a disposición de los estudiantes
y profesores. Las condiciones actuales facilitan contar con
herramientas de apoyo al proceso educativo que se encuentren
más cercanas a la manera en cómo, niños, jóvenes y adultos
perciben y entienden su mundo, es decir, de una manera más
dinámica, llena de estímulos paralelos, preparados para el
cambio constante, intercomunicados e integrados. En este
caso, la multimedia representa una ventaja como soporte al
proceso educativo, pues presenta y manipula la información
en un lenguaje contemporáneo, que además, permite a
profesores y alumnos jugar con su estructura para lograr
diferentes objetivos pedagógicos. [5]
Es entonces que los usos sociales de la información se
modifican, aunque se conservan las mismas funciones: ahora,
a la información se le considera como una mercancía a la que
se calcula un precio, se almacena, transporta, distribuye,
procesa, transforma y elabora productos con ella. Con la
computadora, con las redes de telecomunicación, se da un
sistema a través del cual se circulan, indistintamente, la
información pública o la privada; el mismo sistema se emplea
ahora para cuestiones de diversión y entretenimiento, de
3
trabajo, de educación y de información, cuestiones que antes
requerían sistemas diferentes para su realización. [5]
La aplicación multimedia es, en un sentido, sólo una forma
distinta de presentar productos y servicios ya existentes:
programas de televisión, periódicos, obras cinematográficas,
bancos de información, obras de arte, entre otros, que
constituyen la mayor parte de su información. En otro
sentido, las aplicaciones multimedia son un vehículo para
acceder y/o crear "información" no preexistentes en el mundo
físico y que sólo existen como creación "lógica", como es el
caso de los juegos de video, las experiencias de la realidad
virtual y de manera particular, la creación de imágenes y
otras aplicaciones de entretenimiento. [5]
Debido a la importancia que alcanza este tipo de
aplicaciones, existe una tendencia a crear contenido
dinámico, con resultados óptimos, donde se integran audio,
video, mapas de bits, texto, fuentes, entre otros, lo que
garantiza el éxito de estos productos informáticos.
Actualmente, este ejemplo de software, no se queda sólo en
presentarle al usuario la información coherentemente
distribuida, en un ambiente ameno y sencillo; sino también
incorpora interactividad a sus componentes, cambios de
estados y un sinnúmero de funcionalidades, lo que lo hace
más sólido y adaptable.
En nuestros días todos estos comportamientos no se les
añaden de forma estática y repetidamente a una y otra
aplicación, sino que existe la inclinación a crear librerías,
Xtras, frameworks, Plugins, entre otros, que permiten que
toda la programación esté disponible para su uso en el
proyecto que lo requiera, ganando en reutilización, tiempo de
desarrollo y mantenimiento.
Existe una gran variedad de herramientas de autor desde
los tradicionales lenguajes de programación, a las
herramientas de diseño especial para el manejo de menús. Los
lenguajes de programación como Pascal y C requieren de
habilidades del programador para escribir y desarrollar una
buena aplicación. Los lenguajes de autor también requieren
código, pero el lenguaje es especialmente escrito con el
propósito de producir CAL (Computer Aided Learning,
aprendizaje asistido por computadoras), de modo que el
código es simple. Estos son los conocidos scripting
languages. Los sistemas de autor se manejan generalmente
por medio de menús y el código se genera automáticamente,
son paquetes fáciles de usar, pero también los menos
flexibles. En la práctica muchos de los sistemas también
tienen scripting languages que permiten adicionar
facilidades. [6]
Los sistemas de autor son divididos en tres tipos principales
basados en la forma en que organizan sus datos y eventos;
sistemas de autor basados en fichas, sistemas de autor basados
en iconos y sistemas de autor basados en tiempo, estas últimas
herramientas proporcionan una interfaz para el manejo de
eventos multimedia en el tiempo para controlar el flujo del
software. [7]
Hoy día, se observan continuamente aplicaciones
multimedia relacionadas con la informática; desde sencillas
animaciones en Internet, hasta sofisticados programas dentro
CCIA’2008
de los discos de las revistas del sector o aplicaciones para
autoaprendizaje.
Dentro de las tecnologías actuales para el desarrollo de este
tipo de aplicaciones, se encuentra el sistema de autor
Macromedia Director MX. Es la herramienta que utilizan
miles de desarrolladores profesionales alrededor del mundo.
Constituye un programa multimedia de un autor muy
difundido a nivel internacional, además de considerarse la
herramienta de usuario final más importante para crear
medios interactivos para la World Wide Web (WWW), CDROM, kioscos de información, presentaciones e intranet
corporativas. [8] Resulta muy útil y proporciona a sus
usuarios la oportunidad de crear aplicaciones interactivas
increíblemente complejas utilizando el lenguaje de script tan
poderoso que incluye: Lingo. Además, debido a su capacidad
de interactuar con otras plataformas y al apoyo que
proporciona a sus medios basados en la Web, el componente
Shockwave de Director marca el estándar para crear juegos de
Internet y todo tipo de aplicaciones multimedia. La interfaz
de fácil manejo de Director permite combinar texto, gráficos,
sonido, video, gráficos vectoriales y otros medios en cualquier
orden, así como añadir características interactivas mediante
Lingo uno de los lenguajes de programación conque cuenta el
programa. [9]
También se cuenta con la robusta aplicación Macromedia
Flash, que constituye una herramienta para diseño y creación
de presentaciones y aplicaciones de interacción de usuario.
Los proyectos de Flash pueden incluir animaciones simples,
presentaciones gráficas, videos y aplicaciones complejas. La
gran potencia y flexibilidad que brinda, con la utilización de
múltiples medios (video, sonido, imágenes, entre otros), en la
creación de aplicaciones; además del reducido consumo del
espacio y memoria (mediante el uso de gráficos vectoriales, es
decir, representación de los gráficos por sus fórmulas
matemáticas en lugar de los juegos de datos conque se
representa un Bitmap); las mismas junto a su poderoso
lenguaje de programación ActionScript, la convierten en una
de las herramientas más utilizadas en la creación de
aplicaciones “web” y multimedia en todo el mundo. [10]
En nuestros días, cuando la empresa del software libre
alcanza un gran auge, cabe señalar herramientas dedicadas al
desarrollo de aplicaciones multimedia tales como: Squeak
(entorno de programación visual y desarrollo de aplicaciones
multimedia en smalltalk) y KOMET (K Open Multimedia
Toolkit); pero los avances constituyen sólo piezas aisladas,
por lo que estos sistemas no cuentan con todas las
funcionalidades y beneficios que reportan los del software
propietario.
Desde este breve panorama sobre las herramientas más
relevantes en el mercado en cuanto a la concepción de
aplicaciones multimedia, se selecciona a Macromedia
Director MX como base para es desarrollo de nuestro trabajo,
por todas sus potencialidades y facilidades en cuanto a los
paradigmas de programación.
4
E. Definición del sistema de aut or Macromedia Director
MX.
Herramienta de Adobe Systems Incorporated para la
producción de películas ejecutables en Macromedia
Shockwave, usando mapas de bits y en programación Lingo.
Este software permite generar presentaciones multimedia (en
archivos ejecutables, por ejemplo) que pueden ser distribuidas
a través de CD o DVD. Permite incorporar a las películas
múltiples formatos, como imágenes (JPEG, BMP, PNG, GIF),
videos (MOV, AVI), sonidos (WAV, AIFF) o animaciones
Flash. Incluye editores básicos para texto, mapa de bits,
vectores, sonido. [11]
Director crea sus proyectores, los que permiten ver estas
aplicaciones en cualquier PC con sistemas Operativos
Windows o Macintosh, sin necesidad que esté instalada la
herramienta propiamente.
Esta herramienta cuenta de un gran número de interfaces
para la configuración y creación de cada uno de los elementos
que componen sus proyectos. Destacan, entre otros,
componentes como movie, sprite, cast, member como se
muestra en la Fig. 1.
Figura 1. Ambiente de desarrollo de Macromedia Director MX.
Movie: Archivo que engloba todas las funcionalidades,
gráficos, script, interpretado por el reproductor Shockwave de
Director, sobre un movie se trabajan los gráficos, textos y
cualquier recurso permitido por la herramienta así como su
presencia en tiempo y espacio sobre la pantalla. Este fichero
contiene la película animada e interactiva de cara al usuario
final.
Cast: La ventana Cast contiene los gráficos y el texto que
se utiliza, o no, en cada uno de los sprites, así como los
sonidos, los videos digitales, las transiciones, los scripts, y
cualquier otro recurso que se utilice en Director.
Member: Cada uno de los recursos que están presente en el
Cast.
Sprite: Es un objeto que controla cuándo, dónde y cómo
aparece el cast member en una película de Director. Múltiples
sprites pueden referenciar el mismo cast member. Se utiliza el
Stage para controlar dónde aparece y el Score para controlar
CCIA’2008
cuándo aparece en la película. Los sprites aparecen en el
Stage de acuerdo al canal al que está asignado en el Score.
Las propiedades de los sprites incluyen localización y tamaño,
el cast member asignado al sprite, el nombre del sprite y el
frame en el cual el sprite ocurre.
En esta herramienta, la producción de una aplicación
multimedia se conoce como movie, que no es más que una
secuencia de frames referidos en el score. De esta manera,
dichos frames contienen un número de celdas que representan
los símbolos multimedia, como gráficos, botones, sonidos, etc.
Generalmente son presentados de manera secuencial al
visualizar la aplicación.
Director es un sistema de autor basado en línea de tiempo,
aunque su arquitectura flexible permite a los desarrolladores
dar alas a su creatividad y crear productos de alta calidad.
Incorpora elementos que permiten; a pesar de que es una
herramienta basada en canales y tiempo; que la acción del
usuario sobre elementos de tipo visual se controle por el
programador. Destacan dentro de estos elementos
mencionados los lenguajes de programación script que
incorpora: Lingo y Javascript. El lenguaje nativo de este
sistema es Lingo, pero en la versión MX del 2004 se
incorpora el javascript como segundo lenguaje; los
desarrolladores cuentan con las mismas funcionalidades para
ambos lenguajes. Son lenguajes sencillos pero potentes,
capaces no sólo de controlar los elementos internos de una
aplicación sino también de comunicarse con el sistema
operativo y utilizar muchas de sus funciones. La diferencia
entre estos lenguajes se basa en la sintaxis.
Se destaca, además, que esta herramienta y sus lenguajes de
programación están dirigidos a eventos, implementa el
paradigma POE.
F. Comportamientos en Lingo, relación con la POO y la
POE.
La herramienta Macromedia Director MX define tres tipos
de script o guiones de programación:
? Behavior
? Movie Script
? Parent Script
Behavior: Guión que contiene la programación referida a
determinada acción de la aplicación. Puede ser vinculado a un
elemento independiente o al canal de script dentro de la línea
de tiempo. Existen vías para validar el control de los
elementos a los que se pretende adjuntar este tipo de guión.
Los comportamientos permiten generar una animación
dentro de un único frame del Score, y hacerlo igual de fácil
cuando se utiliza un rango de estos marcos del Score.
Algunos programadores de Director prefieren la animación
basada en el Score, mientras otros prefieren la animación
basada en el comportamiento, aunque la mayoría de usuarios
de Director tienden a combinar ambas opciones en su trabajo.
La animación basada en el comportamiento permite mantener
el Score compacto, por lo que los procesos complicados se
simplifican bastante. [6]
Movie Script: Guión que contiene la programación referida
5
a los eventos de movie de la aplicación, controlan qué ocurre
cuando empieza, se detiene o se pausa una película, entre
otros eventos. Están disponibles en toda la película cuando
esta se reproduce.
Parent Script: Guión que contiene definiciones de
funciones y propiedades reutilizables en toda la aplicación,
una instancia de script de este tipo, accede a sus métodos y
propiedades y se convierte en una instancia de objeto, con
espacio reservado en memoria interna. En estos guiones se
definen las clases y es la vía con que Macromedia Director
MX implementa la POO.
Lingo controla un gran número de eventos y brinda la
posibilidad a los desarrolladores de crear manejadores de
eventos propios. Ofrece posibilidades de comunicación entre
estos eventos brindando una amplia gama de funcionalidades
a la creatividad de los programadores.
Este lenguaje de programación brinda la posibilidad de
utilizar la POO, con sintaxis no estricta para el uso de los
conceptos de este paradigma: declaración de objetos,
encapsulación, herencia, entre otros.
Otra característica a destacar es la posibilidad de
comunicación desde y hasta varios script de una o varias
aplicaciones. Cuenta con los tipos de datos básicos de
lenguajes de programación de alto nivel, como string, float,
integer, entre otros. Las variables en este lenguaje, admiten su
declaración sin tipo y pueden mutar en el ámbito de ejecución
de la aplicación tantas veces como lo desee el programador.
Estas variables pueden ser propiedades de los
comportamientos o variables de tipo global, a cuyos valores se
podrá acceder desde cualquier módulo independiente, pues
estas últimas se registran en el proyector de la aplicación.
La naturaleza de eventos de esta herramienta y la
posibilidad de agregar objetos mediante los Parent Script,
permiten poner en función de los objetivos de desarrollo
métodos creativos de solución. Logrando de esta manera,
aplicaciones que agrupan las ventajas de los paradigmas de
programación (POO y POE), aportándole al producto gran
valor en el campo de la ingeniería.
III. RESULTADOS Y DISCUSIONES
A. Implementación de la POE desde Macromedia Director
MX.
La POE se implementa haciendo uso de los behaivors
script y de los movie script. En los primeros se programan los
eventos relacionados con todos los componentes presentes en
la aplicación, tales como: botones, frames, members, etc.,
mientras que en los movie script se programan los eventos
pertenecientes a la aplicación como tal, ejemplo: starMovie,
prepareMovie, close, etc.
En ambos tipos de guiones de programación el código
escrito es de forma secuencial o estructurada, líneas de código
unas debajo de otras (ver Fig. 2 y 4) y en ocasiones se hace
implementación de forma modular con la definición y
codificación, por parte del programador, de algunas funcione
CCIA’2008
6
necesarias en varios eventos como se muestra en la Fig. 3.
Esto provoca se implemente la misma funcionalidad de
maneras diferentes y que este código ya generado para un
objetivo determinado n pueda ser utilizado en otra aplicación.
Figura 4. Código en un movie script donde el evento prepareMovie se
programa de forma estructurada.
Figura 2. Código en un behaivors script donde el evento exitFrame se
programa de forma estructurada.
B. Implementación de la POO y sus conceptos
fundamentales desde Macromedia Director MX.
El concepto de objeto es quizás el más importante de la
POO. Él define una entidad computacional que nos permitirá
resolver un problema concreto. La importancia de este
concepto radica en la abstracción que en el se encierra ya que
todo lo que antes era para nosotros un dato, ahora podrá ser
considerado como objeto, por lo que tendremos que cambiar
la forma de pensar en la solución del problema. Ahora no
tendremos datos que se manipulan por un programa, sino que
tendremos un conjunto de objetos que interactúan entre sí
para alcanzar la solución del problema planteado.
Las clases agrupan objetos con características comunes.
Como ya se ha mencionado para implementar la POO se
utiliza el parent script donde el nombre de este script será el
nombre de la clase que implemente ese objeto (ver Fig. 5).
La estructura mínima de un parent script la forma el
handler o función new:
on new me
return me
end
Cada objeto tiene un número de ID único que,
normalmente, se guarda en una variable o en una lista para
cuando queramos referenciar al objeto.
Para crear un objeto se hace una llamada a la función new
que devuelve un valor de retorno (el ID) y éste lo guardamos
en una variable:
var_id = new (script "nombre del parent script")
Figura 3. Código en un behaivors script donde se programa de forma
modular.
Los atributos pasivos o campos de la clase son valores que
determinan características del objeto en particular. Estos
valores permiten diferenciar a un objeto de una clase de otros
de la misma clase.
Estos se corresponden con localizaciones de memoria
donde se almacenan valores que caracterizan al objeto en
particular. Estos valores pueden ser examinados y cambiados
en cualquier momento de acuerdo al procesamiento que se
esté realizando. En Lingo son identificados mediante la
palabra reservada “Property”:
Property propiedad1
Property propiedad2
Los métodos, son operaciones que realizará el objeto que
CCIA’2008
pertenezca a la clase que se declara. Estos definen por tanto el
comportamiento de los objetos de esa clase, o sea la respuesta
que da el objeto ante cualquier solicitud recibida por este. Por
otra parte estos métodos son los únicos que pueden manipular
los datos de un objeto o parent script.
Los métodos no son más que subprogramas, se declaran e
implementan a un tiempo siguiendo el siguiente formato:
On <nombre del método>
-- Secuencia de operaciones -return <variable de salida>-- en caso de que sea
necesario devolver algún valor -end <nombre del método>
7
return me
end
Esto funciona porque me contiene el ID de sí mismo y, al
crear el objeto, se modifica el valor de “nombre”.
De esta forma queda implementada la primera propiedad de
la POO, el encapsulamiento.
La herencia también se encuentra convenientemente
implementada mediante la propiedad “ancestor”. Para crear
un objeto hijo de un script padre, hay que definir la propiedad
ancestor y después guardar aquí el ID del script padre de este
objeto (ver Fig. 6). En el siguiente ejemplo se crea el script
mínimo hijo de otro que, como ya hemos dicho, hereda todas
las propiedades y funciones del script padre:
-- script hijo -property ancestor
on new me
ancestor = new (script "nombre del script padre")
return me
end
El padre de este script, al que pondremos una propiedad
llamada “nombre”, podría ser el siguiente:
-- script padre -property nombre
on new me
nombre = "Nombre del Padre"
return me
end
Figura 5. Implementación de una clase en un parent script.
La herencia de las propiedades se efectúa de la siguiente
forma, la propiedad “nombre”, aunque solo está definida en el
script padre, también existirá en los objetos hijo. Al iniciar el
programa, padre e hijo comparten el valor de la propiedad
“nombre” pero se puede cambiar de forma independiente.
Para hacer esto, es imprescindible conocer el ID de cada
objeto.
Si se quiere cambiar el valor de una propiedad, desde fuera
del script, se hace como ya hemos visto:
hijo.setNombre("Nombre del hijo")
padre.setNombre("Nombre del padre")
Siendo hijo y padre las variables que contienen el ID.
Para inicializar “nombre” al crear el objeto, modificamos el
script hijo como sigue:
property ancestor
on new me
ancestro = new (script "nombre del script padre")
me.nombre ="Tunombre"
Figura 6. Implementación de un objeto hijo en un parent stript utilizando la
propiedad ancestor.
CCIA’2008
C. Vinculación de la POO y la POE.
Para desarrollar Aplicaciones Multimedia más robustas y
flexibles se propone la vinculación de la POE y la POO,
donde a partir de esta relación los objetos pueden encapsular
los eventos más utilizados y comunes en todas las
aplicaciones obligando a los programadores a invocar estos
eventos por mediación de ellos y estos objetos pueden ser
creados en los eventos de la aplicación (movie script) o en la
mediada que vayan haciendo falta.
En la Fig. 7 se muestra la creación de un objeto del tipo
class_BtnNavegation en el evento on beginSprite, de esta
forma queda creado el objeto y se puede acceder a todos los
métodos que este brinda de manera dinámica en cualquier
evento de la aplicación bastando solo con conocer el
identificador del objeto y sin tener que preocuparse de cómo
está implementado.
Figura 7. Código para la creación de un objeto.
En la Fig. 8 se muestra como a la instancia de la clase
class_BtnNavegation creada en la figura anterior se le invoca
uno de sus métodos (f_MouseEnter) en el ámbito del evento
on MouseEnter de uno de los objetos presentes en la
aplicación. De esta forma dicho evento queda encapsulado
por el objeto el cual contempla las funcionalidades más
comunes para este tipo de evento.
Figura 8. Invocación a un método de un objeto ya creado.
IV. CONCLUSIONES
Se lograron definir las principales características de los
paradigmas de programación estudiados. Se decidió tomar la
herramienta Macromedia Director MX para llevar a cabo la
integración de la POO y la POE producto de las facilidades
que este sistema de autor brinda para ambos paradigmas.
Se lograron implementar ambos paradigmas haciendo uso
de la herramienta decidida, así como, se pudo vincular las
potencialidades de estos lo que conlleva al desarrollo de
aplicaciones mucho mas flexibles y potentes.
8
REFERENCIAS
[1]
“Introducción a la programación orientada a Objetos”. 1999; [en línea].
Disponible en: URL:
http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_1.htm. Consultado Marzo
20, 2007.
[2] “Programación dirigida por eventos”. 2007; [en línea]. Disponible en:
URL: http://es.wikipedia.org/wiki/Programacion_dirigida_por_eventos.
Consultado Marzo 22, 2007.
[3] Molas A. “Programación orientada a Eventos”. 2005; [en línea].
Disponible en: URL:
http://www.monografias.com/trabajos/progeventos/progeventos.shtm.
Consultado Marzo 22, 2007.
[4] Departamento de Técnicas Informáticas, Universidad de Barcelona.
“Conceptos Básicos de la Programación Orientada a Objetos”. 1996; [en
línea]. Disponible en: URL: http://www.ati.es/novatica/1995/marabr/n114obje.html. Consultado Marzo 22, 2007.
[5] González R. “Multimedia”. 2004; [en línea]. Disponible en: URL:
http://sisinfo.itc.mx/ITC-APIRGG/Materias/Mat3/MM_Unid1.php.
Consultado Marzo 26, 2007.
[6] Burger, Jeff. “La Biblia de Multimedia”. Editorial Addison Wesley
Iberoamericana, S.A.; 1994.
[7] Ramírez Y. “CD-ROM Túnel de la Bahía de La Habana: una obra
colosal”. (Tesis de Diploma). C. de La Habana, Cuba: ISPJAE; 2000.
[8] GROSS P. “Macromedia Director MX y Lingo”. Ediciones Anaya
Multimedia. 2003. ISBN: 84-415-1593-X.
[9] Martin R., Nyquist J. “Director 8”. \\Tutoriales\ la biblia de director 8.pdf.
Abril; 2007.
[10] Issi L. “Macromedia Flash MX”. \\Tutoriales\la biblia de flash.pdf. Abril;
2007.
[11] “Macromedia_Director”. 2005; [en línea]. Disponible en: URL:
http://es.wikipedia.org/wiki/Macromedia_Director. Consultado Abril 2,
2007.
Descargar