Lingo

Lingo
Información sobre la plantilla
Parte de la familia Lenguaje de Programación Orientada a Objetos.
Lingo.jpg
Idiomainglés

Lingo es el lenguaje de programación que usa un Director. Este lenguaje constituye la herramienta más potente a la hora de realizar los proyectos multimedia, ya que se pueden programar acciones que en el entorno gráfico de Director no son posibles. Aunque en sus principios era un lenguaje muy simple orientado casi exclusivamente a controlar animaciones, actualmente es un lenguaje completamente orientado a objetos, pudiendo llegar a compararse en potencia de programación tanto a C y Pascal como, sobre todo, a los lenguajes orientados a Internet como el Java. Lingo es un programa de autoría. Permite integrar con relativa facilidad texto, imágenes, sonidos y video digital, siendo una alternativa a lenguajes más tradicionales, como el C/C++, porque el desarrollo de la aplicación es mucho más rápido y flexible. El soporte para publicar suele ser el CD y desde hace algún tiempo, con la ayuda de Adobe Shockwave, también la WWW.

Carácterísticas

Lingo se concibió en las primeras versiones de Director como una forma de controlar su entorno, es decir, la Partitura (Score), el Reparto (Cast) y el Escenario (Stage); al escribir cualquier código en Lingo estamos creando un guión, y cada uno de estos guiones constituye un miembro del Reparto, como también lo son las imágenes o los vídeos. Concretamente, un guión es un miembro del Reparto que contiene una pieza de texto que es válida en código Lingo. Una vez escrito, un guión se puede asociar a cualquier otro miembro del Reparto, como por ejemplo imágenes o sonidos, aunque también se puede situar en la Partitura, asociado a un Fotograma (Frame) determinado. Este lenguaje tiene la particularidad de que casi se puede leer como si fuera el idioma Inglés, lo que lo hace más sencillo tanto de comprender como de aprender. Esta relativa facilidad de aprendizaje se debe a que todos los comandos, funciones y otras palabras claves en Director son palabras, grupos de palabras o abreviaciones en Inglés.

Como lenguaje, Lingo ofrece diferentes características de alto nivel:

  • Gramática: comandos en idioma inglés, muy parecidos a los del lenguaje BASIC.
  • Sintaxis: construcción sencilla de comandos, se escriben casi como el inglés.
  • Funciones: conjunto de comandos que realizan tareas complejas.
  • Programación estructurada.
  • Orientación a objetos.
  • La funcionalidad de Lingo puede extenderse (xtras)
  • Director ofrece un entorno de programación "amigable", permitiendo organizar y depurar el código facilmente.
  • Lingo es un buen comienzo para estudiar otros lenguajes de programación.

Sintaxis

El cambio a la sintaxis de JavaScript es una importante mejora sobre el Director de Macromedia. Esta característica proporciona un lenguaje y una sintaxis más comunes entre el MX de Macromedia Director y Flash de Macromedia. En Director, la puesta en práctica de la lengua está encima del motor de SpiderMonkey ( Javascript-C ), que es un intérprete preembalado de ECMAScript escrito en C y se conforma en gran parte a la especificación de ECMA, excepto en las áreas donde las funciones o las palabras claves de encargo exponen funcionalidad Director.

Guiones

Respecto a los tipos de guiones de Lingo existen discrepancias entre distintos autores. Existe un grupo de éstos que consideran que las diferencias entre un guión y un comportamiento (Behavior) son meramente históricas, y que a partir de la versión 8 de Director dichas diferencias han desaparecido. Podría considerarse esto como cierto, ya que tanto guiones como comportamientos son instrucciones escritas en Lingo.

Sin embargo, los autores más detallistas consideran que sí hay diferencias, y exponen que todos los comportamientos son guiones, pero no todos los guiones son comportamientos. La principal diferencia es que los comportamientos deben escribirse según las reglas de la programación orientada a objetos, y debe tratarse como un objeto que se puede utilizar y personalizar de nuevo, dotado de parámetros que puedan ser configurados de forma independiente para cada instancia del mismo. Así, los guiones pueden ser de tres tipos: de película, de comportamiento o padre.

Además, otros miembros del Reparto, como las imágenes de mapa de bits, o cualquier otro tipo de miembros, pueden tener guiones dentro de sí mismos. Estos son llamados normalmente guiones de Reparto. La diferencia entre todos estos tipos de guión no está en qué aspecto tienen o cómo se comportan, sino en cuando actúan.

Un guión de película, por ejemplo, es una presencia global en una película. Si escribimos un guión de película que produce un pitido de sistema cuando se hace clic sobre un botón del ratón, este guión da el pitido cuando se hace clic sobre el ratón en cualquier momento. De ahí el nombre de "guión de película".

Un guión de comportamiento es similar en concepto a los comportamientos. No hace nada hasta que se sitúa en un sprite o en un canal de guión de fotograma. Si se sitúa sobre un sprite, los comandos Lingo dentro del guión están activos sólo en lo que al sprite se refiere. Si tiene un comportamiento que hace sonar un pitido cuando hace clic sobre el botón del ratón, y aplica ese comportamiento a un sprite, el pitido suena sólo cuando el usuario hace clic sobre ese sprite. Los guiones de comportamiento son a veces llamados guiones de Sprite o Partitura por esta razón.

Los guiones de comportamiento pueden ser asignados también al canal del guión de fotograma de la Partitura. Cuando se hace esto, actúan como guiones de película, pero sólo para el fotograma o fotogramas a los que son asignados. Los comportamientos usados de esta manera son llamados a veces guiones de Partitura.

Los guiones padre son un tipo de guión mucho más avanzado. No están asociados a ningún otro elemento, y funcionan como instancias de objetos independientes. Realmente no hacen nada hasta que usa algunos comandos Lingo de programación orientados a los objetos para decirles cómo y cuándo deben utilizarse. Los guiones de Reparto, por otra parte, son fáciles de usar. Puede crearse uno seleccionando un actor, como por ejemplo una imagen de mapa de bits, y haciendo clic sobre el botón de guión en la parte superior de la Ventana de Reparto (Cast Windows). Esto abre la Script Windows y le permite añadir un guión a ese miembro del reparto en particular.

Para crear o modificar guiones se usa la Script Windows

Script Windows

La parte superior tiene los típicos botones de miembro del Reparto de Director que nos llevan hacia atrás y adelante en el Reparto, nos permiten añadir un nuevo miembro del Reparto, y nos permiten cambiar bibliotecas de Reparto. El resto de botones tratan con funciones más avanzadas de Lingo tales como Correctores, inserción de breakpoints (puntos donde se parará la ejecución del guión, para facilitar su depuración), recompilación del guión, etc. Los dos botones llamados Alfabetical Lingo y Categorized Lingo nos permiten buscar e insertar automáticamente en un guión cualquier palabra clave de Lingo. Son muy útiles cuando no podemos recordar el nombre de un comando, o cuando no recordamos la sintaxis apropiada para usar comandos Lingo. Por último decir que mediante el Property Inspector podemos cambiar el tipo del guión.

Controladores y Eventos

Lingo está diseñado para responder a eventos en el entorno de Director. Prácticamente todas las acciones que tienen lugar en una película son eventos y mientras se reproduce una película de Director, éste emite notificaciones internas llamadas mensajes, indicando los eventos que han tenido lugar. Esto da lugar a que prácticamente podamos intervenir en cualquier momento de la película en función del tipo de evento que se produzca. Los eventos pueden ser de varios tipos, como por ejemplo de reproducción (startMovie, enterFrame, etc.), de respuesta del usuario (keyDown, mouseDown, etc.), de tiempo (idle, timeOut) o de ventana (acivateWindow, openWindow, etc.). Una lista completa de los eventos pueden verse en el manual de Director o en la ayuda. Los controladores de eventos o handlers (los llamaremos a partir de ahora sólo controladores) se pueden considerar como hojas de instrucciones dirigidas a realizar varias tareas. Los controladores están asociados a los eventos, es decir, cuando se produce un evento, actuará el controlador asociado a dicho evento.

La estructura de un controlador es la siguiente:

  • Comienzan con la palabra on seguida por un evento.
  • Incluyen una serie de acciones que han de producirse cuando el evento tiene lugar.
  • Terminan con la palabra end.

Si un guión incluye varias instrucciones, se van ejecutando progresivamente una después de otra hasta llegar a final del controlador. Es decir, al producirse un evento determinado, es importante conocer a qué controlador va asociado, y si tiene que ejecutar algún conjunto de instrucciones.

Ejemplo Sencillo

on mouseUp me 
beep 
end 

Este controlador indica que cuando se pulse el ratón sobre el elemento al que está asociado, suene un pitido. Como puede apreciarse, puede leerse fácilmente el significado, pues Lingo intenta imitar el idioma inglés (excepto por la palabra “me”, que es un parámetro de la función indicando que el objeto sobre el que se aplica la función es el mismo guión al que pertenece).

El programador puede fabricar sus propios controladores, que no respondan a nigún evento. En ese caso, al controlador también se le puede llamar función. Los controladores en ese caso pueden ir acompañados por argumentos, también conocidos como parámetros, los cuales representan valores suplementarios que se transmiten al controlador cuando se le invoca y que suministran la información adicional que necesita la función para completar la tarea para la que se programado. Estos parámetros se sitúan detrás del nombre de la función, como el parámetro “me” en el ejemplo anterior.

A una función sólo se le puede llamar desde el ámbito desde el cual esa función es visible: desde la misma instancia del mismo objeto al que pertenece (bien sea un guión de comportamiento, o bien sea un guión padre). La única forma de tener una función a la que se puede llamar desde cualquier tipo de objeto es colocarla en un guión de película. Pero si queremos comunicarnos con una función que está en un objeto determinado y que no es visible, aún nos queda otra posibilidad: podemos mandar un mensaje hacia ese objeto.

Elementos de Lingo

Las instrucciones incluidas en un controlador de Lingo están formadas por una combinación de elementos, de forma idéntica a las palabras de una frase en una lengua. Se pueden clasificar según su función y las reglas determinan cómo se pueden combinar.

Los elementos de Lingo se agrupan en las siguientes categorías:

  • Comandos: Indican, en una película, una acción. Por ejemplo, go to ordena al cabezal de reproducción que se desvíe hacia un fotograma concreto.
  • Funciones: Devuelven un valor. Por ejemplo, date devuelve la fecha establecida en el ordenador. Existen muchas funciones en Lingo, además de las que pueda escribir el programador.
  • Términos clave: Son palabras reservadas que tienen un significado especial en Lingo. Por ejemplo, todas las propiedades de Lingo y muchas propiedades y funciones de los sprites deben ir precedidas por el término clave the. Este término clave distingue el nombre de la propiedad de una variable o del nombre de un objeto.
  • Propiedades: Son atributos de un objeto. Por ejemplo, the colorDepth es una propiedad del monitor del ordenador referente a la definición del color. Las propiedades también pueden venir expresadas con sintaxis de punto, como por ejemplo lista.count (número de elementos de una lista).

En este caso, lista es un objeto, y count, una propiedad suya.

  • Operadores: Son términos que modifican o cambian uno o varios valores. Por ejemplo, los operadores + o <.
  • Constantes: Son elementos que no cambian. Por ejemplo, TRUE siempre tiene el mismo significado, el valor 1.
  • Variables: Son fragmentos que se reservan en la memoria para guardar ciertos valores.

Las dos cualidades más importantes de las variables son su tipo (entero, punto flotante, carácter, cadena de caracteres, lista, etc), y su ámbito. En cuanto al ámbito, las variables pueden ser locales (sólo accesibles en la función en que fueron declaradas), globales (accesibles en toda la película) y propiedades (accesibles por todas las funciones en una instancia de un objeto, bien sea comportamiento, bien guión padre).

Mensajes

Director envía mensajes cada vez que tiene lugar un evento en la película (por ejemplo, pulsar el botón del ratón). A partir de los eventos, Director desencadena una serie de acciones que previamente se le han asignado mediante un controlador.

Estos mensajes son recogidos por Director en la ventana Message, que no es más que un intérprete de Lingo, es decir, toma comandos de Lingo y los evalúa de la misma forma que los guiones. Por tanto, haciendo uso de esta ventana podemos visualizar la forma de trabajar de Director. Esto supone una forma sencilla de comenzar a aprender el funcionamiento de Lingo y Director.

Tenemos dos posibilidades a la hora de trabajar con la ventana Message. Si el botón Trace está pulsado y comenzamos a reproducir nuestra película, comenzarán a aparecernos los distintos mensajes que envía Director, así como las líneas de guión que ejecuta; esta es una forma de visualizar lo que ocurre durante el transcurso de la película, ayudando notablemente en la realización de proyectos tanto a nivel de principiante como a nivel más avanzado. Por el contrario, si el botón Trace no está pulsado, podremos practicar tal como escribiríamos los guiones en Lingo, para ver los errores que cometemos y poder subsanarlos.

El uso de la ventana Message es de gran utilidad para comenzar a aprender Lingo, y que es recomendable su uso para iniciarse en este lenguaje de programación.

Referencias