Libro de Macromedia Director

Embed Size (px)

Citation preview

  • 8/17/2019 Libro de Macromedia Director

    1/62

  • 8/17/2019 Libro de Macromedia Director

    2/62

    Marcas registradasTodos los nombres de programas, sistemas operativos, equipos hardware,

    etc. que aparecen en este libro son marcas registradas de sus respectivascompañías u organizaciones.

    AvisoLa información contenida en este documento está sujeta a cambios sin

    previo aviso

    Reservados todos los derechos. Se prohibe la reproducción, adaptaciónde este manual sin permiso por escrito del Instituto Galego de Formación.

    Ninguna parte de este documento podrá fotocopiarse, reproducirse sinpermiso por escrito del Instituto Galego de Formación.

    Instituto Galego de Formación (Vigo)C/ Zamora 13A (esquina Ramón y Cajal)

    36.203 – VigoTeléfono: 986 48 52 52

    Instituto Galego de Formación (O Burgo)Rúa Os Templarios 16 Bajo (Frente al Puente del Burgo)

    15.670 – O BurgoTeléfono: 981 65 21 18

    www.igf.es

    © Copyright Instituto Galego de Formación 1996 - 2000.

  • 8/17/2019 Libro de Macromedia Director

    3/62

  • 8/17/2019 Libro de Macromedia Director

    4/62

    n el primero podemos asignar un Script al miembro seleccionado. De esta forma este miembrlocado en el escenario se comportará tal y como se le haya asignado en el script de Cast,dependientemente de donde este colocado. Por ejemplo:a un miembro le asignamos el script:

    on mouseDown

    beep

    end

    este personaje siempre reproducirá un sonido de alerta del sistema cada vez que se haga clic

    segundo botón nos sirve para asignar propiedades particulares al miembro del reparto. Más remos ejemplos en donde utilizaremos estas dos herramientas.

    La ventana Tool Palette.Menú Window > Tool Palette.

    Esta es la paleta de herramientas de Director.La primera herramienta es elpuntero. Sirve como cualquier otropuntero para seleccionar y mover objetos por el Stage (escenario).La segunta es laherramienta de giro. Sirve para girar de formaibre los sprites que hemos colocado en el escenario.

    Luego tenemos lasfiguras con relleno y sin relleno.Estas figuras tiene la particularidad de ocupar muy poca memoria,o que agilizará nuestra pelicula si se reproduce en internet, porejemplo, en donde la velocidad de ejecución en un punto crítico.

    Los botones de selección y radio, son los tipicos botones queencontramos en aplicaciones y páginas web. Mas adelante veremoscomo utilizarlos para recoger información a través de Lingo.

    Las herramienta siguiente nos sirve paraasignar un color defondo y frontala nuestras figuras, campos de texto, etc..

    Las últimas herramientas son las decolor y grosor de linea.

    Inspector de Texto.Menú Window > Inspectors > Text.

    Este es el inspector de texto.

  • 8/17/2019 Libro de Macromedia Director

    5/62

    Aqui asignamos tipos de letra, alineación, espacio entre lineas, etc, para los textos y campo

    La ventana Behavoir.Menú Window > Inspectors > Behavoir.

    Este es un pequeño asistente que nospermite asignar Scripts de Lingo, sinnecesidad de escribir el código, sinoeleccionando los handlers y lasacciones que queramos ejecutar. Mas

    adelante veremos los conceptos dehandler y script con mucho másdetalle.

    Utilizar la ventana Behavior no es laorma más limpia de programar en

    Director, y siempre que podamos,debemos escribir el código nosotros

    mismos. Esto no es una simplecuestión de estilo, sino que el abuso deos scripts generados en la ventana

    behavior puede llegar a saturarproyectos medianamente grandes,provocando comportamientosnesperados.

    Las indicaciones del gráfico, demomento, son lo suficientementeexplicativas. Cuando entremos enemas de Lingo, aprenderemos a

    utilizar los scripts de forma extensa ypormenorizada.

    La ventana Score.Menú Window > Score.

  • 8/17/2019 Libro de Macromedia Director

    6/62

    Score, es sin duda, la ventana que más intimida a los principiantes que se acercan a Directorna vez que comprendemos sus funciones, y empezamos a hacer nuestros primeros juegos en eansformando simplemente en una herramienta poderosa y versátil.

    ebemos entender el Score, como un secuenciador, o una partitura, en donde colocamos todos nuestra pelicula.

    uando la cabeza de reproducción comienza, va leyendo todo lo que encuentra, a la velocidadayamos asignado, interpretando y obedeciendo a los scripts que hayamos puesto en su caminostrando los sprites que hayamos colocado en los canales.

    n el gráfico inferior vemos las partes principales de la ventana score.

    n el capitulo 2 la utilizaremos masivamente para realizar nuestra primera animación.

    stas son las principales ventanas de Director. Confome vayamos avanzando veremos otras venciones de Director, relacionándolas directamente con su uso en los ejemplos.

    n el siguiente capitulo veremos, paso a paso, como realizar nuestra primera animación en Dirxportarla a video digital. Luego nos iremos adentrando en la utilización del sonido, video y co

  • 8/17/2019 Libro de Macromedia Director

    7/62

    ilizar Lingo para crear la interactividad que necesita nuestra pelicula para converitrse en unaultimedia, con ejemplos paso a paso, para aprender todo lo necesario, para dominar Directorultimedia de autor.

  • 8/17/2019 Libro de Macromedia Director

    8/62

    Importar gráficos.

    n este capitulo vamos a ver como se importan bitmaps de Photoshop o cualquier otro editor de imarector.mbién veremos algunas propiedades de los bitmaps.

    n Macintosh, si se utiliza la versión 5 de Director solo podemos importar archivos con formato PICindows en formato BMP. En la versión 7 de Director esto se extiende a una serie mas larga de pos

    mportación de gráficos, como por ejemplo, GIF, JPEG, PNG, PICT, etc..

    la hora deimportar imágenes en Director es muy importante pensar para qué las vamos utilizar, parrmato correcto. Una pantalla de ordenador funcionando a 256 colores corresponde a 8 bits de resontalla a miles de colores corresponde a 16 bits, y una pantalla a millones de colores corresponde a

    queremos mostrar fotografías a alta resolución podemos optar por 16 ó 32 bits, pero si lo que impmágenes para animación será suficiente importarlas a 8 bits de profundidad de color, de este modo

    upará menos memoria y funcionará más rápido.

    o tiene en absoluto ningún sentido que realizemos una animación con imagenes a 32 bits, porque pestra pelicula ocupará demasiado y se arrastrará a velocidad de caracol en un CD Rom de 4X veloCD Roms de velocidad mayor, la transferencia de datos en mucho menor que la del disco duro. Pnveniente probar las peliculas directamente en CD antes de distribuirlas para evitarnos sorpresas.

    Importar gráficos.MenúFile > Import.

    artiendo de la base de que tenemos los gráficoseparados en su carpeta o directorio

    orrespondiente, vamos al menuFile > Import,obtendremos una ventana similar a la mostrada

    n el ejemplo.

    n el ejemplo vemos unapelicula QuickTime, unáfico en formato PICT, unapelicula deirector 7, y unarchivo de sonido en formatoIF.

    queremos importar un solo archivo,eleccionamos en la parte superior el archivo yulsamos"IMPORT", de este modo pasaremos apantalla siguiente en función del tipo dechivo que hayamos importado.

    queremos importar más de un archivo a la vez,

  • 8/17/2019 Libro de Macromedia Director

    9/62

    amos seleccionando los archivos y pulsando elotón"ADD", de este modo los archivos querán importados se van alineando en la parteferior, y al pulsar"IMPORT", se importarándos los archivos que hayan sido pasados a la

    entana inferior.

    queremos eliminar algun archivo de lalección, lo seleccionamos en la parte inferior y

    ulsamos"REMOVE".

    na vez le hemos dado al botón "IMPORT" y le hemos expresado nuestra conformidad a Director, nos ntana similar a la siguiente en donde podemos fijar algunos ajustes.

    qui podemos ajustar laprofundidad de color, en el ejemplo 8 bits (256 colores), y podemos asignarle ucolor.

    o más usual para empezar es asignarle la paleta de color de nuestro sistema, bien sea Macintosh ó ción "Dither" para que los degradados de color de la imagen sean lo más suaves posible.

    .........

    na vez le damos a "OK" el proceso de importar se ha terminado y el gráfico pasa a ser parte de la ve

    or defecto el gráfico se colocará en la primera casilla libre que encuentre el la ventana Cast, o bien

  • 8/17/2019 Libro de Macromedia Director

    10/62

    leccionada una casilla concreta antes de importar, el gráfico se colocará en esta casilla.

    hora vamos a ver algunas propiedades que podemos ajustar en la ventana Cast para los archivos gto seleccionamos el gráfico y pulsamos el botón superior con el simbolo: ( )

    on esto accedemos a las propiedades del miembro seleccionado en la ventana Cast.onviene recordar que estos ajustes son distintos según que tipo de miembro tengamos en el Cast.

    ta es la ventana que nos aparece para los miembros de reparto gráficos.

    n esta explicación, asi como sucede en alguna otra, omitimos de momento algunas cosas que aborelante.

    n primer lugar vemos, que tanto en la ventana Cast como aqui, Director ha recordado el nombre oráfico, pero siempre podemos cambiarlo en esta ventana o directamente en la ventana Cast.

    La Opción "Highlight When Clicked", hará que nuestro grafico se ilumine, invirtiendo sus colores al

  • 8/17/2019 Libro de Macromedia Director

    11/62

    bre él, cuando sea colocado en el escenario.

    La opción "Dither" aplica el efecto "Dithering" (Suavizado) a los gráficos.

    Luego tenemos losajustes de transparencia Alpha para los graficos de 32 bits (Solo en Director 7).

    Y por último laspreferencias de descarga en memoria (Unload) de ese miembro cuando sea utilizado.

    te tema lo veremos con mayor detalle cuando abordemos la gestión de memoria.

    en, ya tenemos el gráfico importado y hemos visto sus particularidades en la ventana Cast, pero aodo de modificar los ajustes para los gráficos en Director, como vemos a continuación.

    "Transform Bitmap".MenúModify > Transform Bitmap.

    n esta ventana siempre podemos cambiar en última instancia, las particularidades del gráfico.ecordad que esta opción del menú "Modify" se encuentra desactivada, si no está seleccionado un gntana Cast.

    n el siguiente capitulo veremos como importar archivos de sonido y video en Director.

  • 8/17/2019 Libro de Macromedia Director

    12/62

    Importar sonidos.

    sonido apenas tiene particularidades a la hora de importar, pero debemos tener muy en cu

    maÒo del archivo de sonido que importamos. Por lo general en un editor de sonido podemsoluciÛn del sonido de igual modo que hacemos con los gr·ficos en un editor de im·genes

    n Macintosh podemos importar basicamente sonidosAIFF, oSystem 7 Sound, y en la versión 7 deirector también en FormatoSun.au, que es el formato de sonido utilizado por las applets Java.

    ara ambas plataformas Macintosh y PC el formato de sonido recomendado esAIFF. Asi mantendremaxima compatibilidad entre las dos plataformas, ya que Director es multiplataforma, o s

    elicula de director construida en Macintosh se puede abrir directamente en la misma versióe PC.

    a fecuencia de muestreo recomendada para el sonido (a ajustar en nuestro editor de sonidode22,050 kHz ó 11,025 kHz. Los sonidos con frecuencia superior a esta, pueden bloquear u

    a que hay que tener en cuenta que por lo general cuando ponemos en una pelicula una animun sonido, estamos obligando al procesador a realizar dos operaciones, una actualizar el ger y reproducir el archivo de sonido.

    empre pensad como se reproduciria vuestro material multimedia en un PC de oficina, del on un CD de doble velocidad, y con un usuario malévolo, capaz de hacer volar el mundo ctón... vuestro programa tiene que ser no sólo rápido en condiciones adversas, sino también

    mportar sonido.

    unque el proceso de importar sonido es exactamente el mismo que a la hora de importar unido tiene menos peculiaridades en este proceso que los gráficos.

    n la ventana Cast, vemos ahora, al lado del gráfico, nuestro primer sonido importado.

    jaos en los iconos de ambos, son diferentes, esto nos ayuda a identificar los miembros de ast de forma rápida.

  • 8/17/2019 Libro de Macromedia Director

    13/62

    hacemos clic sobre el botón: , con el miembro sonido seleccionado en el Cast, veremos sale otra ventana diferente, acorde con el nuevo miembro del reparto.

    ás facil de entender que en el caso de los gráficos, la ventana de propiedades del sonido esrácticamente tenemos sólo la opción de "Loop", que hace que nuestro sonido se reproduzca de petitiva, y la opción "Unload" que de forma similar al caso de los gráficos regula la prioridad

    urga de miembros que no son utilizados en un momento dado.

    n el siguiente capitulo veremos las propiedades y como importar video, y también como incenario los elementos multimedia que hemos importado.

  • 8/17/2019 Libro de Macromedia Director

    14/62

    Importar videos.

    video es el componente multimedia de m·s peso, esto quiere decir que a cualquier ordenaucho esfuerzo reproducir video. Con el video digital debemos tener a™n m·s cuidado que

    a que aparte de que un video de unos pocos segundos a 320 X 240 pixels ocupa varios meguro, la reproducción de este en pantalla es una tarea pesada para cualquier tipo de ordenadel video adem·s tiene sonido debemos vigilar que el formato del sonido no sea excesivam

    ueremos que nuestro video vaya a saltos y se coma fotogramas intentando sincronizar la imnido.

    obra decir que es tarea imposible intentar reproducir a la vez dos videos con sonido en panempo y esperar un resultado lejanamente aceptable.unque podemos hacer video digital al tamaño que queramos en un programa editor de videdobe Premiere, hay algunos formatos estándares que nos convendrá usar. primero es el formato estándar QuickTime (320 X 240 pixels). Este formato es el más gracomendable a la hora de insertar video en nuestra aplicación multimedia.podemos, debemos utilizar otros formatos más pequeños, que se reproducirán más rápido

    onsiguiente mejora general de nuestra aplicación en cuanto a rendimiento. Dos buenos tam210 pixels) ó (160 X 120).

    mportar video:

    proceso de importar video es el mismo que el de importar sonido, apenas disponemos de n Director a la hora de importar video, pero si tenemos muchas opciones de variarlo, modif reproducción en Lingo, y también ajustando sus propiedades en la ventana Cast.

    bordaremos las capacidades del lenguaje Lingo para controlar el video, más adelante, cuan

    prendiendo Lingo, ahora vamos a ver que propiedades del video podemos ajustar en el Casmportado.ara este ejemplo he utilizado Director 5.

    a que el proceso de importar es el mismo que en el sonido, (MenuFile > Import), vamos a pasar a entana Cast, en donde tenemos el video ya importado en la casilla 3.

  • 8/17/2019 Libro de Macromedia Director

    15/62

    omo vemos, el video se ajusta como otro miembro del reparto más, disponible desde ahoraelicula.

    pulsamos el botóninfo ( ) del cast, obtendremos la ventana siguiente y podemos modifie sus propiedades:

    qui vemos las propiedades del video a las que podemos acceder en la ventana Cast.ayback:

    Este es el principal control de la reproducción de video en Director.Video: Aqui escojemos si queremos que se vea el video en el escenario, o bien sea invconservando las propiedades del sonido.Sound: Aqui decidimos si nuestro video tendrá sonido o no, es conveniente desactivar si el video que hemos importado no tiene sonido, asi QuickTime no intentará ajustar lasonido hipotético, y el video funcionará más fluidamente.

  • 8/17/2019 Libro de Macromedia Director

    16/62

    Paused: Con esta opcion definimos si el video, por defecto comienza en pausa, siemprarrancarlo luego con Lingo.Loop: Con esta propiedad activada el video se reproducirá de forma continua, volvienprincipio cada vez que haya terminado, a no ser que eliminemos esta caracteristica desvolvamos a la ventana Cast para desactivarla.

    ptions:La opciónDirect to To Stage, es una propiedad por defecto del video. Normalmente el v

    deja que otro elemento se ponga sobre el, bien sea texto, un gráfico, etc. si un gráfico delante del video, el video se pondrá sobre él de forma que no podremos verlo mientraen el ámbito del video.Si desactivamos esta opción, el video dejará pasar sobre el a los demás miembros de lapero en contrapartida, funcionará a saltos y de forma poco fluida, por lo queno conviene desaesta opción.La opcionShow Controlersimplemente nos dejará ver la barra de progreso de la peliculQuickTime, mientras funciona en el escenario.

    Video:n este menu tenemos dos opciones:

    - La primera opción,Sync to Soundtrack, habilita que QuickTime ajuste el sonido a la imforma que una no vaya más rápido que la otra.- La segunda,Play Every Frame (No Sound), elimina el sonido del video, caso de tenerloinabilita el intento de QuickTIme por sincronizar imagen y sonido, con lo que el videofluido en pantalla.

    Las OpcionesEnable Preload y Unload, son para la gestión de la carga y descarga en mevideo.De momento es mejor no tocar estas opciones, hasta cuando abordemos la gestión de m

    Y esto es todo para empezar con el video, es recomendable hacer pruebas uno mismo, imp

    ustando video.ás adelante veremos como tratar con el video en el escenario, y luego como controlarlo co

  • 8/17/2019 Libro de Macromedia Director

    17/62

    Trabajar en el Score.

    a hemos visto todo el proceso de importar multimedia para nuestar pelicula, y ahora vamos a locarla en el Score y en el escenario. Si hemos seguido los pasos de los anteriores capítulos tntana Cast, un gráfico, un sonido y un vídeo.

    ara este tutorial yo estoy utilizando la versión 7 de Director, pero trataré de no señalar aquellapecificaciones propias de esta versión, y explicar el proceso en otras versiones de Director, páximo posible la adaptación al curso de aquellos que utilicen versiones anteriores de Director

    eamos como colocar nuestros personajes (miembros del reparto) en el escenario de la peliculaara empezar vamos a ir al menú:Modify > Movie > Properties.qui obtenemos la ventana en la que podemos ajustar las principales propiedades la la pelicula

    xplicaré aquellos ajustes semejantes en casi todas las versiones de Director:

    age Size: En este apartado podemos modificar el tamaño del escenario de la pelicula. El tama640 X 480 pixels, que corresponde a un monitor de 15 pulgadas, pero podemos ajustar el tamomode mejor a nuestras necesidades. Cuando tratemos la gestión de ventanas flotantes en Diimportancia de ajustar el tamaño de las peliculas que luego serán ventanas flotantes.

    age Location: Aqui ajustamos la colocación del escenario con respecto a la pantalla.age Color: En este menu podemos variar el color de fondo del escenario.efault Palette: Esta es la paleta de color de sistema por defecto de la pelicula. Para empezar escoger System Mac ó System Windows, según en que plataforma estemos desarrollando la pe

  • 8/17/2019 Libro de Macromedia Director

    18/62

    na vez tenemos los miembros de reparto colocados en la ventana Cast, vamos a colocarlos en

  • 8/17/2019 Libro de Macromedia Director

    19/62

    ogiendo y arrastrando un mienbro del reparto sobre la ventana Score o sobre el escenario direabremos colocado el miembro en el escenario, por lo que a partir de ahora cuando nos refiramrsonaje, colocado en el Score le llamaremos "Sprite". En el gráfico he señalado con un circulo rojo la ventana Score en donde podemos variar la tinta de mezcla para el sprite. Es conveniente pismo todas las opciones para familiarizarnos con ellas.

    omo vemos en el ejemplo he colocado el sprite en el cuadro 5 y se extiende en el tiempo tres cuadro 7.

    os puntos blancos señalan una posición del sprite y los cuadros blancos del final, señalan el prite. Si quisiéramos estirar en el tiempo, hasta el cuadro 20, por ejemplo, la presencia del Sprmplemente debemos coger el Sprite por su punto final, mientras pulsamos la tecla "ALT" y arcuadro 20, con lo que, durante la pelicula, este sprite ahora será visible desde el cuadro 5 has

    0.

    ste proceso es distinto en versiones anteriores a la versión 6 de Director. Incluso el Score tienariencia, aunque en el fondo, el funcionamiento es muy parecido. Para prolongar en el tiemprsiones anteriores de Director, debemos seleccionar el sprite y la porción de cuadros sobre latirar su presencia, e ir al menúModify > In Beetwen. Así veremos como los cuadros seleccionado

  • 8/17/2019 Libro de Macromedia Director

    20/62

  • 8/17/2019 Libro de Macromedia Director

    21/62

    Primera animación.

    espues de ver como se importan los elementos en Director, vamos a ver como realizar la primer

    n primer lugar hemos importado un ciclista en formato pict, y ahora lo pondremos a correr por eara esto podemos arrastrar el ciclista desde la ventana Cast hasta el escenario o hasta la ventanarma que pasara a ocupar uno o varios cuadros por defecto en el score, apareciendo tambien en esta animación queremos que comienze en el cuadro 5 y vamos a extender la animación hasta el ara esto cogemos el sprite por su punto final en el Score y lo encogemos para que solo ocupe deadro, que será el punto de partida de la animación.

    n el menu "Modify > Movie > Properties", cambiamos el color de fondo de la pelicula al color que pen el score asignamos la tinta "Background Transparent" al Sprite ciclista, para que sus partes blancar transparentes.

    hora con este unico cuadro de partida de la animación seleccionado en el score, colocamos en eclista en el punto de partida de la animación, en este caso entrando por la parte izquierda del es

  • 8/17/2019 Libro de Macromedia Director

    22/62

    na vez colocado el cuadro 5 en su punto de partida vamos a asignar un punto intermedio en la aadro 10, en donde el ciclista ya se encontrará en el cento del escenario, a medio camino de su ampleta.

    ara esto, pulsando la tecla "ALT", arrastramos el sprite hasta el cuadro 10. Vemos como no movhasta la posicion 10 sino que nos llevamos una copia del sprire hasta esta posición. Si no hubiertecla "ALT" simplemente habriamos movido el cuadro 5 hasta la posición 10.

    on esto estamos asignando un nuevo tiempo en la pelicula, en el que nuestro actor estará en otra

    on el sprite seleccionado en el cuadro 10, vamos de nuevo al escenario y colocamos el ciclista ecenario.sta será su posición cuando llegue la reproducción al cuadro 10.

  • 8/17/2019 Libro de Macromedia Director

    23/62

    omo vemos Director ha creado una linea de animación, desde el punto inicial, hasta la nueva poadro 15, generando todos los pasos intermedios. Ahora vamos a hacer la misma operación perorite hasta la posición 15, en donde el ciclista ya desaparecerá del escenario por la parte derecha

    Para esto hacemos lo mismo que en el caso anterior: estiramos una copia del sprite con la tepulsada hasta la posición 20, y en esa posición colocamos el sprite en el escenario, desaparela parte derecha de la pantalla.

    on esto tenemos un primera animación básica. Si vamos al menú "Control > Play" veremos como el ciclcorre el escenario de izquierda a derecha. Si queremos ajustar la trayectoria de movimiento, pomenu "Modify > Sprite > Tweening", para definir la trayectoria del sprite como mejor nos conven

  • 8/17/2019 Libro de Macromedia Director

    24/62

    hora vamos a ver como asignar el tiempo de reproducción.

    n primer lugar, la ventana "Control Panel" no la debemos usar para asignar tiempo a la pelicula,

    forma virtual, no real. La pelicula solo responde y conserva los controles de velocidad asignadn Lingo.

    ara ajustar la velocidad de reproducción, seleccionamos un cuadro en el canal de tiempo del scoincipio de la animación del ciclista (cuadro 5).

    Y con este cuadro seleccionado vamos al menú "Modify > Frame > Tempo", en donde nos saleventana en donde podemos asignar el tiempo, en el ejemplo 5 fps. Debemos cuidar que la velo

    pelicula no sea excesiva, para que no sobrepase la capacidad de un procesador poco potente, mestá corriendo sobre un CD.

    as adelante veremos otras aplicaciones de esta ventana, pero ahora nos vale con saber asignar vs cuadros de la pelicula.

  • 8/17/2019 Libro de Macromedia Director

    25/62

    ara prolongar el area de tiempo especificado en la pelicula, simplemente seleccionamos el canaln la tecla "ALT" pulsada, arrastramos el sprite, estirándolo, por ejemplo, hasta el cuadro 15, enanimación de ciclista. Asi podemos asignar diferentes velocidades a diferentes partes de la peli

    onviene probar uno mismo a hacer animaciones, metiendo graficos de fondo y superponiendo pecordad que conforme poneis sprites en el escenario, el sprite del cuadro 2 estará por delante deadro 1 y asi sucesivamente.

    ambien es conveniente probar las tintas de mezcla de los sprites, y probar distintas velocidades producción. Esta es la base para trabajar en director: controlar los elementos del escenario.

    n el siguiente capitulo veremos como realizar "FilmLoops", siendo una de las técnicas más interimación múltiple en Director, y en el siguiente capitulo, comenzaremos a controlar nuestra peliqueñas dosis de Lingo, creando la primera navegación interactiva.

  • 8/17/2019 Libro de Macromedia Director

    26/62

    FilmLoops.

    (Descargar pelicula de ejemplo)

    queremos reproducir la animaciÛn de una persona o un perro caminando, tenemos una animoco compleja:or un lado el muÒeco debe ir moviendo los brazos y las piernas mientras avanza hacia delantn cada paso tenemos cuatro movimientos para los brazos y piernas, a la vez tendremos que huÒeco hacia delante con todos sus movimientos de andar.tro caso puede ser que necesitamos, por ejemplo, un reloj, que siempre de vueltas sin parar,dependientemente del curso del resto de la animaciÛn, y que queremos manipular como un

    ara solucionar este tipo de animaciones autÛnomas tenemos losFimLoops, que son muy f·ciles de unos proporcionan una ayuda muy importante en casi todos los trabajos con Director.

    ara hacer un FilmLoop, debemos partir de los gr·ficos importados que conformar·n la animacn este ejemplo vemos los ocho gr·ficos que componen un reloj cuyas agujas dan vueltas.

    Y aqui vemos el movimiento montado en una animaciÛn:

  • 8/17/2019 Libro de Macromedia Director

    27/62

    Veamos el proceso de crear FilmLoops.

    imero importamos los gr·ficos que conformar·n el conjunto del FilmLoop, y los dejamos ordentana Cast.uego, seleccionamos juntos, apretando la tecla may™sculas, todos los graficos del FilmLooprastramos a un lugar libre en el Score.eremos que los graficos se nos alinean en el Score, en el mismo cuadro, hacia abajo, ocupandel score en vertical. Para colocar directamente la animaciÛn en horizontal vamos al menu "Modify > S

    time".ambien podemos, simplemente, ir colocando un gr·fico delante del otro para formar una animue luego convertiremos en FilmLoop.

    na vez que tenemos colocados y alineados los sprites, los seleccionamos juntos de nuevo en rastramos juntos hacia una casilla libre en la ventana Cast, veremos como se nos abre un cua

    e FilmLoop en donde podemos poner nombre a nuestro FilmLoop. Hecho esto, limpiamos elrites que formaron el FilmLoop.tro modo de hacerlo es copiando todos los sprites del FilmLoop en el Score, para luego pegasilla libre de la ventana Cast, veremos como tambiÈn se nos abre un pequeÒo cuadro de dia

    odemos dar nombre al nuevo FilmLoop.

  • 8/17/2019 Libro de Macromedia Director

    28/62

  • 8/17/2019 Libro de Macromedia Director

    29/62

    Botones interactivos.

    uchas veces probablemente, utilizando una aplicaciÛn multimedia o un programa hemos visto eue cambian de forma al rozar o al pulsar sobre ellos. Veamos como se hace esto en Director.n primer lugar tenemos importamos en la ventana Cast los tres gr·ficos del botÛn: El botÛn en rulsado.n este caso ocupar·n las casillas del Cast, 4, 5 y 6 respectivamente.adem·s importamos un sonido que ser· el que se reproduzca al pulsar sobre el botÛn, en el ejem

    CLIC", y ocupar· la casilla n† 7 del Cast, por ejemplo.

    os tres estados del botÛn:

    hora debemos colocar en el score el boton en reposo, en este caso a partir del cuadro 5 ocupandl Score.

    n el ultimo de los tres cuadros, hacemos doble clic en el canal de script, con lo que se nos abre lra poder escribir nuestro codigo Lingo que se ocupara de controlar distintos aspectos:

    on exitFramego to the frame-- al intentar salir del cuadro le decimos a Director que permanezca en el mismo lugar. -- if rollOver(1) = true then-- si el raton roza el sprite situado en el canal 1 del Score (TRUE significa verdadero) --puppetSprite 1 true-- declaramos "puppet", el sprite 1 con lo que pasa a ser controlado por Lingo. --

    set the memberNum of sprite 1 to 5--cambiamos el numero de cast del sprite 1 por el correspondiente al boton rozado. --updatestage-- forzamos a actualizar el escenario. -- else if rollOver(1) = false then-- sin embargo, si el raton NO ROZA el sprite 1. --set the puppet of sprite 1 to false

  • 8/17/2019 Libro de Macromedia Director

    30/62

    -- eliminamos el "puppet" del sprite por lo que deja de estar controlado por Lingo y vuelve a su estado origupdatestage end if -- fin de la sentencia if() --

    end-- fin del Script --

    ahora ponemos a andar la pelicula, podremos probar nuestro script rozando el botÛn con el curlta el Script que har· que el botÛn cambie al pulsar sobre Èl y emita un sonido.ara esto seleccionamos el sprite botÛn en el frame o frames en donde queremos activar su script

    la ultima casilla en donde hemos colocado el script de score anterior, ya que es ahi donde la petiene. Con el Sprite seleccionado, vamos al men™: Modify > Sprite > Script: con los que se nonatna de Script con el handler:

    n mouseDown

    d

    qui escribimos:

    on mouseDown-- nuevo handler que captura el clic del ratÛn. --

    puppetSound "CLIC"-- que se reproduzca el sonido importado con el nombre "CLIC". --puppetSprite 1 true

    -- Hacemos controlable desde Lingo el botÛn. --set the memberNum of sprite 1 to 6-- cambiamos el boton en reposo por el gr·fico del botÛn pulsado. --updatestage-- actualizamos el escenario. --end mouseDown-- terminamos el handler mouseDown. -- on mouseUp-- nuevo handler para cuando levantamos el botÛn del ratÛn --set the puppet of sprite 1 to false-- declaramos "false", el control de Lingo sobre el gr·fico cuando levantemos el boton del raton,de esta forma al soltar el ratÛn, el botÛn vuelve a su estado de reposo. --upatestage

  • 8/17/2019 Libro de Macromedia Director

    31/62

    end mouseUpend

    on esto tenemos un botÛn, o los que queramos, que responden a nuestras acciones con el ratÛn.

    o explicado anteriormente es compatible con todas las versiones de Director.

    n embargo, las nuevas versiones han avanzado bastante al respecto, por lo que prÛximamente haustivo sobre los principales eventos de ratÛn para las nuevas versiones de Director tratando lo

    n mouseEnter me", "on mouseLeave me", "on mouseDown me", "the mouseLoc", "the mouseWetc.

  • 8/17/2019 Libro de Macromedia Director

    32/62

    Eventos del teclado.

    (Descargar pelicula de ejemplo)

    Los eventos de teclado "KeyDown" y "KeyUp" comunes a casi todos los lenguajes de proresponden a los eventos de pulsar o soltar una tecla respectivamente. En este capitulo vam

    teresante ejercicio con el teclado, de forma que moveremos un sprite por el escenario seguteclas:

    J - para ir a la izquierda.

    K -para ir a la derecha.

    U -para ir hacia arriba.

    N -para ir hacia abajo.

    n este capítulo se incluye una pelicula de ejemplo de este ejercicio, en Director 6, llamada Key.dir"

    ................................................................................

    ara comenzar colocamos una figura en el score centrándola en el escenario, a ese cuadro learca que en este caso hemos llamado "M". Y el el cuadro de script hacemos doble clic parript de score que mantendrá la pelicula en el mismo cuadro y responderá a los eventos del

    El script "mágico" será este:

    on exitFramego to the frame

    -- QUEDARSE ESPERANDO EN EL CUADRO --

    on keyDownif the key = "J" then

    -- SI LA TECLA ES "J"... --puppetsprite 1 true

  • 8/17/2019 Libro de Macromedia Director

    33/62

  • 8/17/2019 Libro de Macromedia Director

    34/62

    es asi, Director te tendrá cogido de por vida , incluso otros lenguajes del alto nivel llegarárde o temprano.Sino, es que estas pasando un extraño fin de semana, pero lo olvidarás pro

    or esto os aconsejo que os leais el codigo anterior, a mi me parece lo suficientemente autoeo se me ocurre mejor ejercicio que aconsejaros que os lo leais intentando entender por vosada linea.

  • 8/17/2019 Libro de Macromedia Director

    35/62

    El manejo de texto.

    (Descargar pelicula de ejemplo)

    asi nada se puede conseguir de un programa sin las funciones de entrada y salida de datos o infoirector no es solo un programa para hacer presentaciones, sino que va mucho mas alla, llegandordaderas aplicaciones inteligentes que realizan cálculos e interactuan con el usuario mas alla depera de un programa de presentaciones. Sabiendo de un ordenador es simplemente una supercalogramas en general actúan de puente entre nuestros deseos y el supercerebro del ordenador, solilculos y haciendole gestionar variables y datos.

    manejo de texto, y las entradas del usuario por parte de Director es extremadamente sencillo y demos saber que respondio el usuario a nuestra pregunta, o si la clave de acceso al programa es, o realizar cálculos matemáticos a partir de los datos introducidos por el usuario.

    Lo mas delicado es diferenciar entrecajas de texto y campos detexto.

    Lascajas de texto (1), nos permiten poner textos en el escenariocon la tipografia de la que dispongamos en nuestro ordenador pararealizar diseños y titulares. Estas cajas de texto, una vez creada laaplicacion se convierten automáticamente en Bitmaps con unaresolución muy aceptable, con lo que el usuario no necesita teneresa tipografia con la que hemos diseñado el titular para podervisualizarla y por lo tanto no necesitamos distribuir junto con laaplicación el tipo de letra con el que hemos diseñado texto durantela construcción del proyecto.Sin embargo, las cajas de texto no responden a las órdenes deLingo, de forma que no podemos comprobar que texto está escritoen la caja en un momento dado, ni podemos variarlo desde un scriptde Lingo, ni podemos permitir que el usuario lo edite y reescribadurante la ejecución.

    Loscampos de texto (2), son algo diferente, estos no se conviertenen bitmaps durante la ejecución sino que permanecen funcionalesen todo momento como lugares en donde el usuario puede escribir,o bien en donde podemos comprobar desde Lingo el contenido oreescribirlo. Los campos de texto si responden a muchos script deLingo, como veremos ahora. En el boton de propiedades:

  • 8/17/2019 Libro de Macromedia Director

    36/62

    de la ventana cast puede experimentarse con distintas opciones paralos campos de texto.Para variar el color de fondo y de texto podemos usar los selectoresde color de la paleta de herramientas.

    Lingo para manejo de texto:

    n texto para un programa es una variable, y una variable es un tipo de dato, bien sea una cadena umero entero (integer) , un numero en coma flotante (float), o un valor booleano (TRUE o FALS

    o abordo estos tutoriales bajo el supuesto de que todos tienen una minima experiencia en prograodo me seria imposible afrontar esto. Para aquellos que esten poco familiarizados con estos y ots recuerdo que pueden enviar sus preguntas al buzón del curso para que una vez respondidas, punsultadas por otros estudiosos, que quiza tengan las mismas dudas.

    Comprobar el contenido de un campo de texto:ueno, supongamos que queremos saber que nos responde el usuario o que ha escrito en un campuestra aplicación. Para esto seleccionamos un campo de texto en la paleta de herramientas y los ecenario, ajustandolo a la medida que queramos. En el botón de información de la ventana Cast, ditable" para el campo de texto, para permitir que el usuario pueda escribir en el, ya que de otro mdria hacerlo.

    script para comprobar el contenido de un campo de texto tiene que estar encerrado en una senteif( )ndicional:

    field "miCampo" = "hola mundo" then

    beep(2)el campo de texto llamado "miCampo" contiene el texto "hola mundo", hacer sonar dos pitidos del ordenador.se if field "miCampo" "hola mundo" then

    beep(4)el campo de texto llamado "miCampo" es distinto a "hola mundo", hacer sonar cuatro pitidos del ordenador.d if

    te script se puede asignar a un botón de forma que al pulsar sobre él, se comprueba el contenidoxto y en función de esto se realiza una operación.

    oner nuevo texto en un campo:

    ara escribir nuevo texto en un campo desde Lingo, el script necesario es el siguiente:ut "me gusta Lingo" into field "miCampo"

  • 8/17/2019 Libro de Macromedia Director

    37/62

    ara poner el contenido de un campo de texto en otro campo de texto:

    ut field "miCampo1" into field "miCampo2"

    cambiamos la palabra subrayadainto, porafter , el texto se pondrá al final del texto del campo 2 sin ntenido anterior. Si escribimos en su lugarbefore, el nuevo contenido se pondrá al principio del cam

    xto si variar el contenido anterior.

    Operaciones matemáticas:nemos un campo de texto llamado "OP1", un segundo campo llamado "OP2" y otro llamado "R

    ara sumar lo introducido en el campo "OP1" y lo del campo "OP2" y poner el resultado en el camRESULTADO" el script seria:

    ara sumar:

    ut field "OP1" + field "OP2" into field "RESULTADO"

    quisieramos un resultado entero deberiamos añadir la palabra "INTEGER":

    ut integer (field "OP1") + integer (field "OP2") into field "RESULTADO"

    ara restar:

    ut field "OP1" - field "OP2" into field "RESULTADO" ara multiplicar:

    ut field "OP1" * field "OP2" into field "RESULTADO"

    ara dividir:

    ut field "OP1" / field "OP2" into field "RESULTADO"

    en algun caso, se introdujeran valores no-numericos, Director gestionaría automáticamente el emensajeNAN (), que quiere decir mas o menos "No entiendo nada".

    puede consultar y examinar la pelicula que acompaña a este capitulo para ver el funcionamient

    emplos.

  • 8/17/2019 Libro de Macromedia Director

    38/62

  • 8/17/2019 Libro de Macromedia Director

    39/62

    NavegaciÛn interactiva.

    [ Descargar la pelicula de ejemplo ]

    ara construir una pelÌcula interactiva que se compone de distintos apartados, generalmenteimero en el Score las diferentes secciones que representan las distintas partes de la pelicul

    ega de forma autom·tica o a travÈs de un evento de Lingo. Esto se realiza a travÈs de "marÒalan donde est· cada parte concreta de la pelicula con su nombre propio.

    ara crear una marca nueva, pulsamos sobre la barra superior del score, con lo que nos aparequeÒo tri·ngulo invertido al que podemos poner una etiqueta o cambiar de sitio arrastr·ndarra de marcas.

    n este ejemplo, tenemos tres marcas: "menu", "foto1" y "foto2", diferenciando tres partes ea primera le llamamos "menu" y es donde tenemos los botones: "ver foto 1" y "ver foto 2"arcas contienen dos fotos diferentes, con el botÛn "volver al men™".l final de cada secuencia hemos colocado en scriptn exitFrameo to the framendara impedir que llegados a ese punto la cabeza de reproducciÛn siga adelante.

  • 8/17/2019 Libro de Macromedia Director

    40/62

    ada uno de los botones de esta pelicula tiene un script "go to" referenciando a una marca de la pe

    si, el sprite botÛn "ver foto 1" tiene asignado el script:n mouseDown meo to "foto1"

    ndel sprite botÛn "volver al menu", tiene asignado el script:n mouseDown meo to "menu"nd

    ara aquellos familiarizados con C Û Visual Basic, quiero indicaros que el "go to" de Directamada a funciÛn o un salto de cÛdigo "chapuzero" como en el caso de estos dos anterioreno que lo que se hace es referenciar o enviar la cabeza de reproducciÛn directamente a la

    pecificada en la sentencia " go to". Con lo cual el "go to" de Director no solo es correcto engo, sino que adem·s es imprescindible para hacer aplicaciones interactivas b·sicas.

    iferencia entre el "go to" para el Score y las llamadas a funciones ( Handlers ) en Lingo:

    n Director los mÈtodos o funciones se denominan "Handlers". B·sicamente un handler es una poe cÛdigo independiente que contiene una o m·s sentencias y operaciones, y que siempre esamado para funcionar.

    ara crear un nuevo Handler en Director, seleccionamos el men™: "Window > Script", para abrir uueva ventana de Script vacia. En ella escribimos el cÛdigo para el nuevo Handler:

    n cualquierCosa ( ) -- nombre del handler --uppetSprite 1 , truet the memberNum of sprite 1 to 4

    pdatestagenderramos la ventana de script y el codigo quedar· esperando alli, a ser llamado desde cualquirector para comenzar a realizar su trabajo.ara llamar a un Handler utilizamos simplemente el nombre del Handler:

    n mouseDownualquierCosa ( ) -- nombre del handler --ndon lo que el Handler comenzar· a hacer su trabajo.

    ste modo de trabajo es universal en todos los lenguajes de programaciÛn. De esta forma sener que repetir porciones de cÛdigo idÈnticas en partes diferentes del programa, sino que na funciÛn, mÈtodo, o Handler, en el caso de Director, para ser llamado luego cuantas vecesde cualquier parte del programa.

  • 8/17/2019 Libro de Macromedia Director

    41/62

    odo esto lo desarrollaremos mejor en el siguiente capÌtulo en donde se tratar·n las variable

  • 8/17/2019 Libro de Macromedia Director

    42/62

    NavegaciÛn interactiva.

    [ Descargar la pelicula de ejemplo ]

    ara construir una pelÌcula interactiva que se compone de distintos apartados, generalmenteimero en el Score las diferentes secciones que representan las distintas partes de la pelicul

    ega de forma autom·tica o a travÈs de un evento de Lingo. Esto se realiza a travÈs de "marÒalan donde est· cada parte concreta de la pelicula con su nombre propio.

    ara crear una marca nueva, pulsamos sobre la barra superior del score, con lo que nos aparequeÒo tri·ngulo invertido al que podemos poner una etiqueta o cambiar de sitio arrastr·ndarra de marcas.

    n este ejemplo, tenemos tres marcas: "menu", "foto1" y "foto2", diferenciando tres partes ea primera le llamamos "menu" y es donde tenemos los botones: "ver foto 1" y "ver foto 2"arcas contienen dos fotos diferentes, con el botÛn "volver al men™".l final de cada secuencia hemos colocado en scriptn exitFrameo to the framendara impedir que llegados a ese punto la cabeza de reproducciÛn siga adelante.

  • 8/17/2019 Libro de Macromedia Director

    43/62

    ada uno de los botones de esta pelicula tiene un script "go to" referenciando a una marca de la pe

    si, el sprite botÛn "ver foto 1" tiene asignado el script:n mouseDown meo to "foto1"

    ndel sprite botÛn "volver al menu", tiene asignado el script:n mouseDown meo to "menu"nd

    ara aquellos familiarizados con C Û Visual Basic, quiero indicaros que el "go to" de Directamada a funciÛn o un salto de cÛdigo "chapuzero" como en el caso de estos dos anterioreno que lo que se hace es referenciar o enviar la cabeza de reproducciÛn directamente a la

    pecificada en la sentencia " go to". Con lo cual el "go to" de Director no solo es correcto engo, sino que adem·s es imprescindible para hacer aplicaciones interactivas b·sicas.

    iferencia entre el "go to" para el Score y las llamadas a funciones ( Handlers ) en Lingo:

    n Director los mÈtodos o funciones se denominan "Handlers". B·sicamente un handler es una poe cÛdigo independiente que contiene una o m·s sentencias y operaciones, y que siempre esamado para funcionar.

    ara crear un nuevo Handler en Director, seleccionamos el men™: "Window > Script", para abrir uueva ventana de Script vacia. En ella escribimos el cÛdigo para el nuevo Handler:

    n cualquierCosa ( ) -- nombre del handler --uppetSprite 1 , truet the memberNum of sprite 1 to 4

    pdatestagenderramos la ventana de script y el codigo quedar· esperando alli, a ser llamado desde cualquirector para comenzar a realizar su trabajo.ara llamar a un Handler utilizamos simplemente el nombre del Handler:

    n mouseDownualquierCosa ( ) -- nombre del handler --ndon lo que el Handler comenzar· a hacer su trabajo.

    ste modo de trabajo es universal en todos los lenguajes de programaciÛn. De esta forma sener que repetir porciones de cÛdigo idÈnticas en partes diferentes del programa, sino que na funciÛn, mÈtodo, o Handler, en el caso de Director, para ser llamado luego cuantas vecesde cualquier parte del programa.

  • 8/17/2019 Libro de Macromedia Director

    44/62

  • 8/17/2019 Libro de Macromedia Director

    45/62

    UtilizaciÛn de variables.

    as variables son elementos de programaciÛn que se crean para almacenar valores, ya seannteros, fraccionarios, valores booleanos (true o false), o cadenas de texto (String).stas variables se almacenan en porciones de memoria del ordenador. Podemos pensar que ecuerda" todas nuestras variables con su valor especifico.

    as variables se componen de dos partes:

    ombre y valor.

    nombre de las variables no puede estar formado por frases compuestas del tipo:una variable, o emor un n™mero, como por ejemplo:8numeros.

    n Director podemos crear una variable simple por ejemplo asi:t numeroCosas = 5 --(numero entero), oset nombreCosas = "Cuantas hay aqui". --(cadena de texto

    as variables apenas nos servirian para nada si una vez creadas no pudiesemos manipular suna variable inicializada como:set cosas = 2, podemos aumentarla luego asi:set cosas = cosas + 5.

    ambien podemos realizar operaciones con mas de una variable a la vez:

    t cosas1 = 2t cosas2 = 3t cuantasCosas = cosas1 + cosas2

    tambiÈn:t cuantasCosas = (cosas1 + cosas2) / 4hemos sumado el valor decosas1 y cosas2y el resultado lo dividimos entre cuatro.

    n las operaciones matem·ticas, los operadores entre parentesis son los que primero se eval™ego es aÒadido a la siguiente operacion fuera de los parentesis. Esta es la jerarquia:

    ( (2+2) * 4) - 5n este caso primero se suma 2+2, el valor resultante se multiplica por cuatro y a este valor

  • 8/17/2019 Libro de Macromedia Director

    46/62

    mbito de las variables. (Variables locales y globales).declaramos una variable dentro de un HandlermouseDown, por ejemplo:

    n mouseDown

    t cosas = cosas + 1ndsta variable no perdurar· fuera de este handler. Podemos realizar operaciones con ella en eandlermouseDown pero no podemos usarla en otra parte del programa. De igual modo en unn exitFramet cosas = 7

    ndhubieramos declarado la variable cosas en otra parte del programa obtendriamos un error

    irector no recuerda nada sobre esa variable. Asimismo tampoco podemos usar esta variablandler o en otro cuadro e pelicula fuera del handler donde fuÈ inicializada. En todos los leogramacion modernos esto se hace para permitir mayor flexibilidad en la asignacion de no

    ariables. Una variable local asi, no crear· conflictos con otra variable del mismo nombre enograma, aunque este procedimiento no es muy recomendable, ya que se puede prestar a coogramador, para controlar con que variable esta trabajando. Estos ejemplos eranvariables locales:

    efinidas y con un ·mbito de vida restringido al handler donde fueron creadas.ara tener variables perdurables en memoria durante todo el programa, usamos lasvariables globale

    emplo de variable global:obal cosast cosas = 0

    sta variable la hemos declarado como global, por lo tanto permanecera en memoria hasta qordenador. Si por ejemplo queremos llevar la cuenta de los clics que hace el usuario con e

    odemos crear un Handler donde inicializar la variable global, como por ejemplo al comenzecuciÛn:n startMovieobal numClicst numClics = 0

    nd

    establecer la cuenta de esta variable en otro handler mouseDown:n mouseDownobal numClicst numClics = numClics + 1

    nd

  • 8/17/2019 Libro de Macromedia Director

    47/62

    si podemos incluir en el handler una sentencia de comprobaciÛn para saber si el usuario hotÛn del ratÛn diez veces:

    n mouseDownobal numClicst numClics = numClics + 1

    ( numClics = 10 ) thenert "has pulsado el ratÛn 10 veces"nd if nd

    llamar a esta variable desde otra parte del programa u otro Handler.

    n exitFrame

    obal numClics( numClics = 10 ) thenert "has pulsado el ratÛn 10 veces"

    nd if nd

    ste es el estilo de Director con las variables locales y globales.

    ara destruir de la memoria las variables globales, por ejemplo al cerrar el programa, para liemoria del ordenador, utilizamos la sentenciaclearGlobals.

  • 8/17/2019 Libro de Macromedia Director

    48/62

    Bucles en Lingo: "repeat with" y "repeat while"

    os bucles se usan en programaciÛn para conseguir que un programa repita una serie de paasta alcanzar un objetivo. Basicamente un bucle es una tarea organizada, un fragmento de ncarga de gestionar una tarea repetitiva.

    uando necesitamos por ejemplo declarar como "puppet" todos los sprites del score desde en mal programador escribirÌa.t the puppet of sprite 1 to truet the puppet of sprite 2 to truet the puppet of sprite 3 to true

    ........

    ...........asi hasta que se le durmieran los dedos. Para evitar esto y otras muchas cosas, debemos usi por ejemplo para el caso anterior, el problema estaria resuelto con un bucle sencillo.

    peat with x = 1 to 45t the puppet of sprite x to true

    nd repeat

    ------------------------------------------------------

    n Lingo hay dos tipos de bucles:"repeat with" y "repeat while".

    ------------------------------------------------------l bucle "repeat while".

    ste es un bucle que ejecuta su cÛdigo en funciÛn una expresiÛn de control. Esta expresiÛualquier variable que se pueda evaluar como verdadera (TRUE) o falsa (FALSE).

    or ejemplo:peat while the mouseH > 40realizar algunas acciones--

    nd repeat -- final del bucle

  • 8/17/2019 Libro de Macromedia Director

    49/62

    peat while not terminadoacciones a repetir ---

    nd repeat

    peat while the stillDownacciones a repetir mientras el ratÛn est· pulsado ---

    nd repeat

    ste otro bucle consigue detener la pelicula durante dos segundos.artTimerpeat while the timer < 5 * 60

    ut "Esperando..."nd repeat

    ay que tener cuidado, sin embargo, con los bucles repeat while, ya que mientras est·n funcbsorver·n toda la atenciÛn del programa por lo que, las pulsaciones del ratÛn y las animacetendr·n. Al menos solo debemos hacer funcionar estos bucles siempre y cuando sea facil "r------------------------------------------------------l bucle "repeat with".ste es un "bucle contador".ealiza una serie de acciones hasta alcanzar un n™mero predefinido por el programador.or ejemplo:peat with x = 1 to the number of words in field "textos"

    word x of field "textos" = "lingo" thenlert "Has escrito Lingo"

    nd repeatste bucle repite a acciÛn de b™squeda desde 1 hasta el numero de palabras que hay en el extos".

    ste otro bucle simplemente realiza una cuenta de 1 a 260, contando de uno e uno, y la imprampo de texto.

    peat with cuenta = 1 to 260t cuenta = cuenta + 1

    ut cuenta into field "msg"nd repeat

    ste otro, realiza la misma cuenta de 1 a 260, pero contado de dos en dos, ya que el valor deuenta" es aumentada en 2 en cada iteraciÛn del bucle.peat with cuenta = 1 to 260

  • 8/17/2019 Libro de Macromedia Director

    50/62

    t cuenta = cuenta + 2ut cuenta into field "msg"nd repeat

    s facil imaginarse cientos de utilidades para los bucles, desde una simple cuenta, hasta la pe la trayectoria de una pelota de futbol o un proyectil en un juego. Siempre que queramos rciones repetitivas en un programa debemos recurrir a los bucles, ya que estos forman parttructura de cÛdigo en cualquier lenguaje de programaciÛn.

  • 8/17/2019 Libro de Macromedia Director

    51/62

    Movie in a Window

    tra carateristica interesante de Director es el trabajo con ventanas independientes y las pos

    ompartir datos entre ellas. Basicamente trabajar con MIAW (Movie in a Window), es crearignarle a esta ventana una pelicula de Director. De este modo se puede tener una pelicula

    brir en cualquier momento nuevas ventanas que actuen como selectores o barras de herramara esto necesitamos una pelicula principal y una serie de pelicuals que conformar·n cada udependiente en su momento. Estas peliculas secundarias pueden estar importadas en la mi

    ast, y por lo tanto acopladas al proyector luego, o haber sido incluidas en el proceso de crei como simplemente pueden ser archivos externos en formato: DIR, DCR, DXR, etc.. coloismo directorio del proyector.

    ara abrir una ventana el script b·sico de Lingo es:

    en window "miPeli.dir"

    on este comando b·sico se nos abrir· una nueva ventana flotante del tamaÒo de la peliculaue funciona por si misma. Para cerrar esta ventana desde Lingo el script ser·:

    rget window "miPeli.dir"

    on esto tenemos el trabajo m·s b·sico que podemos realizar con ventanas en Director, peroay muchisimo m·s.

    odemos asignar un nombre de archivo diferente a la ventana en cualquier momento con el

    t the filename of window "miPeli" to "miPeli2.dir"

    odemos situar exactamente la ventana en la pantalla con el metodorect(arribaX, arribaY, abajoX, abajot the rect of window "miPeli" to rect(10,10,150,100)

    simismo podemos cambiar el tipo de ventana (su estilo) utilizando el mÈtodowindowType:

    or ejemplo:t the windowType of window "miPeli" to 0-- Ventana normal.t the windowType of window "miPeli" to 1-- Ventana de alerta.

  • 8/17/2019 Libro de Macromedia Director

    52/62

    t the windowType of window "miPeli" to 2-- Rect·ngulo simple.t the windowType of window "miPeli" to 3-- Rect·ngulo con sombra.t the windowType of window "miPeli" to 4-- Ventana sin botones maximizar o minimizar.t the windowType of window "miPeli" to 8-- Ventana normal con scroll.t the windowType of window "miPeli" to 12-- Ventana normal con scroll sin botones maximizar o minimizt the windowType of window "miPeli" to 16-- Ventana con redondeada.t the windowType of window "miPeli" to 49-- Ventana de tipo paleta flotante.

    tambiÈn por supuesto podemos cambiar su tÌtulo en cualquier momento:set the title of window "miPeli" to "Hola soy una MIAW"

    ercambiar datos entre ventanas:

    ste es sin duda el elemento m·s interesante de la programaciÛn con ventanas m™ltiples enara dirigir nuestros script de Lingo a una ventana en concreto utilizamos en comando tell:

    l window "miPeli"set the puppet of sprite 3 to trueset the locH of sprite 3 to xif (field "mio" = EMPTY) thenalert "El campo est· vacÌo"end if

    d tell

    odo el script encerando entre "tell" y "end tell" se refiere a una ventana en concreto y por ctua sobre su pelicula exclusivamente. De igual modo podemos enviar variables globales aentana desde la pelicula principal:obal miVar t miVar = field "info"

    tell window "miPeli"put miVar into field "info2"end tell

    d

    ambien, como no, podemos volver a "hablar" con la pelicula principal (el escenario), usande stage to...

    tell the stage to set the puppet of sprite 2 to false

    esto, mas o menos es todo en cuanto a ventanas. En el proximo capitulo veremos como utn nuestras aplicaciones de Director

  • 8/17/2019 Libro de Macromedia Director

    53/62

    getPref y setPref

    (Cookies en Director y Shockwave)

    (descargar la pelicula de ejemplo)hockwave es una de las mas potentes formas de publicar multimedia en internet, por encime Flash, que si bien es optimo para animaciones vectoriales interactivas, Shockwave va muilizando el Shockwave Multiuser Server para aplicaciones multiusuario, manejo de bases

    RC, etc... Sin embargo ahora veremos una utilizaciÛn muy sencilla de Shockwave y proyeirector para escribir cookies en el navegador cliente y preferencias de una aplicaciÛn de D

    na Cookie (galleta), como muchos sabreis es la forma en que muchas aplicaciones en red, n el navegador del ciente para recordar cosas tales como la ultima vez que visitamos la pag

    muy util para muchas cosas, en el caso de Shockwave nos permite por ejemplo recordar eeferencias del jugador, para que pueda ir avanzando niveles en nuestro juego en red de forersonalizada. Y por supuesto para otras muchas cosas que podreis imaginar por vosotros m

    n una aplicacion de Director (un proyector), las sentenciassetPref ( ) y getPref ( ) escriben y leenspectivamente de una carpeta en el mismo directorio de la aplicacion los datos escritos deograma. Cuando utilizemossetPref ( ) se creara la carpeta y se escribira un documento de text

    ombre en concreto con los datos que enviemos, datos que luego se puede recuperar congetPref ( ).n una aplicacion en red con Shockwave,setPref ( ) creara una carpeta en el directorio del navegiente, llamada "Prefs" y alli escribira las preferencias, de forma que se conservaran mientras

    o las borre.getPref( ), recuperara esas preferencias en cualquier momento en que ese mismo uelva a utilizar nuestra aplicaciÛn Shockwave.

    eamos dos ejemplos:

    n mouseUp meobal textot texto = field "TF"

    tPref "datos", textond

    ste sencillo script asignado a un boton, rcoger· el texto escrito en un campo de texto llamadlos escribira en el archivo externo de preferencias llamado: "datos"

    ste otro script recupera esos mismo datos y los escribe en el campo de texto llamado "TF".

  • 8/17/2019 Libro de Macromedia Director

    54/62

    n mouseUp meobal textot texto = getPref("datos")

    ut texto into field "TF"nd

    encillo øno?.

    os que sepais como escribir cookies desde Flash o Javascript, apreciareis sin duda la manelimpia de hacer lo mismo desde Director.

    n el siguiente capitulo continuaremos descubriendo las maravillas de Director, incluyendoomo hacer juegos en 3D.

  • 8/17/2019 Libro de Macromedia Director

    55/62

    getNetText ( )no de los modos de publicación mas usados en Director hoy dia, es la publicación en formahockwave, y la inclusión de peliculas interactivas, como juegos, etc... en paginas webcesibles a traves de internet.

    n este contexto, que cada vez cobra mas fuerza, aparecen nuevas necesidades deomunicación para nuestras peliculas. ¿Como hacer juegos multijugador en red? ¿Como envrecibir variables de un CGI?.

    as adelante aprenderemos un poco sobre como hacer juegos con chats IRC, etc, utilizandohockwave Multiuser Server de Director. En el capitulo anterior vimos como escribir algoarecido a "cookies" con Shockwave. Ahora vamos a centrarnos en aprender como trabajar cGI y ASP del lado del servidor, para enviarle datos o recibir sus respuestas.

    tNetText para enviar variables al CGI:

    eamos este script:

    t url = "http://miservidor.com/puntos.asp?juego="3enraya"&puntos;=" &puntos & "&user;=gador etNetText( url )

    n este scrip, en primer lugar creamos una variable que contenga una cadena en el formatoorrecto para ser enviada a una pagina ASP.o hacemos con "set url = ...". El resultado real de la cadena de arriba seria finalmente:

    http://miservidor.com/puntos.asp?juego="3enraya"&puntos=3&user;=pepe "

    na vez tenemos ya la cadena a enviar al CGI, nuestro siguiente script se encargarámplemente de enviarla con el comando de Lingo: "getNetText".o hacemos con:

    etNetText( url )

    endo "url" la variable de texto que habiamos construido antes.ueno, hasta aqui todo bien ¿no?, hemos creado una cadena para enviar con texto y variablehemos enviado a la pagina ASp o al CGI del servidor.

    n este script no esperamos ninguna respuesta del servidor, simplemente enviamos los datos

  • 8/17/2019 Libro de Macromedia Director

    56/62

    guimos a lo nuestro.ero, ¿y si queremos cargar los datos que nos pueda devolver un CGI, como un registro dena base de datos, unas variables de sesión, etc ?

    tNetText para recibir variables del CGI:

    t netID = getNetText ("http://miservidor.com/database.asp")

    ste script, llama a una pagina ASP, y esta responde como si hubiera recibido cualquier otroRequest.Form", de un formulario de una pagina.e supone que esta pagina ASP ya existe y responde adecuadamente con un valor, cuando sellama.

    ero ¿Como atrapamos nosotros su respuesta?.

    os fijais vereis que he asignado un identificador a la operación getNetText, con "set netID =

    si, Director recuerda que la operación de red en curso se llama "netID ". (Tambien puedeamarse de otra forma, como vosotros querais, yo he sido hortodoxo). Esto vamos a utilizarlara recuperar la informacion cuando esta venga de vuelta. Para esto en el siguiente cuadro delicula preparamos un script de forma que la pelicula no avanze mientras los datos del ASPeguen de vuelta.

    ara esto utilizamos el comando de Lingo netDone(netID),para comprobar que netID hayanalizado. Si esta operación ha finalizado (cuando netDone sea igual a TRUE ), ponemos elsultado de la operación contenida en el campo de texto llamado "datos".

    resultado de la operación de red, lo recuperamos siempre con el script: netTextResult(net

    hi teneis el script completo:n exitFrameo to the frameobal netIDnetDone(netID) thenember("datos").text = netTextResult(netID)

    o next

    nd if omo veis, primero se comprueba netDone( ) , y si esta es TRUE, o sea si ha terminado laperación, se recoge el resultado con netTextResult( ), y se pone en el campo de texto llamadatos" para que podamos verlo.

    ecordad que no debeis poner en el mismo cuadro la petición y la espera de respuesta, ya que haber un bucle en ese cuadro, la petición se repetiria una y otra vez sin dar tiempo a llegaspuesta y de seguir la pelicula avanzando no daría tiempo a recibir la respuesta.

    ara estos propositos es costumbre realizar la llamada en un cuadro, y en el siguiente cuadro

  • 8/17/2019 Libro de Macromedia Director

    57/62

    perar a que la variable global netID se complete, para recuperar los datos y continuar si seuiere.

  • 8/17/2019 Libro de Macromedia Director

    58/62

    Uso de Listas en Lingo. as listas en Director son un recurso muy potente e imprescindible de utilizar en casi cualquoyecto. Basicamente una Lista de Lingo es una forma de almacenar informaciondenadamente, de forma que luego la podemos mantener en memoria para consultarla oanipularla de muchas formas.upongamos el caso de un tablero de damas o ajedrez en donde las fichas estan colocadas enna casilla inicial. Durante el juego esas fichas al ser movidas o comidas pasaran a tener otraosicion distinta a la inicial. ¿Como llevar la cuenta de las fichas de dos o mas jugadores en

    so como este?ara esto y muchas cosas mas tenemos las Listas. Con ellas no solo podemos tener lasosiciones de las fichas, al dia sino que ademas podemos consultarlas para averiguar si unacha que va a ser movida hara un movimiento valido, sin subirse encima de otra ficha del molor, porque en todo momento conocemos la situacion del tablero gracias a nuestras listas dego.

    as Listas:

    n Lingo existen dos tipos de Lista: laLista Simple y la Lista de Propiedades .eamos la primera, la Lista Simple :

    ara definir e inicializar una lista vacia simple en memoria sobre la que trabajar utilizamos: global milistalimista = [ ]

    qui tenemos una lista vacia, esperando a ser llenada con informacion.

    ara añadir un valor a la lista podemos utilizar la funcion:add(milista, valor) , por ejemplo. global milistaadd(milista, #peonnegro) -- ahora la lista tendra el valor: [#peonnegro]

  • 8/17/2019 Libro de Macromedia Director

    59/62

    añadimos un nuevo valor a la lista, pasara a ocupar el lugar siguiente, por ejemplo: global milistaadd(milista, #alfilnegro) -- ahora la lista tendra los valores: [#peonnegro, #alfilnegro]

    ara recuperar los datos existentes en una lista utilizamos la funcion: getAt(lista, posicion) global milistagetAt(milista, 2) -- devolveria el segundo valor de la lista: #alfilnegro

    odemos saber tambien el numero de elementos que tiene una lista con count(milista) ,si podriamos utilizar un bucle para extraer todos los elementos de una lista, por ejemplo:

    repeat with x = 1 to count(milista)dato = getAt(milista, x)put datoend repeat-- Este bucle iria recogiendo todos los elementos de la lista desdel uno hasta elultimo.-- Ese dato recogido de cada iteracion del bucle se lo hemos ido asignando a lavariable dato.

    ambien podemos recuperar un dato en una posicion de la lista con gePos(lista, posicion)ero debemos estar seguros de que ese dato existe para no provocar un error en el programa.sto nos devolvera un numero que corresponde con la posicion del elemento en la lista, por emplo:m = getPos(milista, #peonnegro) -- num pasaria tener el valor 1, que corresponde a lasicion de este elemento en la lista.

    queremos borrar un valor de la lista simple utilizamos la funcion:deleteAt(lista, posicion)nalmente si quisieramos vaciar por completo una lista simplemente tendriamos que señala

    omo vacia del mismo modo que la inicializamos antes: global milistalimista = [ ]

    n definitiva las listas simples nos permiten almacenar objetos de forma ordenada, pero enngo tenemos otro tipo de listas mas sofisticado:

  • 8/17/2019 Libro de Macromedia Director

    60/62

    as Listas de Propiedades :

    ste tipo de listas se diferencian de las primeras en que almacenan la informacion segun unaave y un valor. Este valor pasa a ser asociado a su clave, pudiendo ser recuperadomplemente a traves de su clave, igual que si se tratara de una variable con sus partes, nombvalor.ara inicializar una lista de propiedades vacia utilizamos el simbolo " : " en el interior de la liara indicar a Lingo de que se trata de una lista de propiedades y no de una lista simple.

    global milistalimista = [ : ]

    ara añadir un valor a esta lista con su clave utilizamos: addProp(lista, clave, valor) , por emplo:

    addProp(milista, #peones, 4)addProp(milista, #alfilnegro, "H1V1")addProp(milista, #reyblanco, point(280, 233))

    hora nuestra lista tendria este formato: [#peones: 5, #alfilnegro: "H1V1", #reyblanco:int(280, 233)]ormalmente utilizamos las listas para almacenar el mismo tipo de datos, podemos tener unsta para las posiciones, otra para las fichas comidas, otra para las casillas vacias, etc... esteemplo anterior era solo ilustrativo.

    jaros que el formato de las Listas de Propiedades es siempre: [clave : valor , clave : valor

    ara recuperar el valor de una propiedad de una lista utilizamos: getAProp(lista, propiedad)or ejemplo el script:

    tAprop(milista, #reyblanco) , devolveria el valorpoint(280, 233), que es el valor de laopiedad #reyblanco, de la lista milista.

    queremos cambiar el valor de una propiedad ya determinada de la lista utilizamos:tAProp(lista, clave, valor)or ejemplo el script:

    tAprop(milista, #peones, 18 ) asignaria a la clave #peones el valor 18, con lo que la lista

  • 8/17/2019 Libro de Macromedia Director

    61/62

    ndria ahora este formato:peones: 18, #alfilnegro: "H1V1", #reyblanco: point(280, 233)]

    ahora consultaramos el valor de esta clave en la lista con getAprop(milista, #peones)btendriamos el numero 17.asta aqui hemos visto como trabajar con Listas en Lingo y como recuperar y manejar losalores almacenados en ellas.

    as Listas y su uso es algo practicamente imprescindible y aunque si estais aprendiendo aunogramar os resulte quiza un recurso poco util o incomodo, segun vayais entrando en laogramacion y vayais usandolas vereis como es dificil entender como habiais hecho las cos

    asta ahora sin ellas.

    on las Listas siempre teneis ahi, en la memoria del ordenador, una completa base de datoson lo que necesitara vuestro programa para funcionar.

    e os puede ocurrir tambien combinar esto para guardar los datos de las listas en el disco, cos funciones setPref y getPref para poder recuperarlos en cualquier otro momento.

    Habeis pensado como Director y otros programas conservan la posicion de las ventanas, losrectorios de disco, etc, cada vez que los abris?stos programas usan algo muy parecido a las Listas de Lingo para mantenerse personalizador los usuarios.

  • 8/17/2019 Libro de Macromedia Director

    62/62