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.