Algunas situaciones particulares en Macromedia Director.

20 de noviembre de 2007
Valoración del artículo:
Vamos a ver en éste capítulo de nuestro manual de Macromedia Director algunas situaciones particulares que en muchos casos nos servirán de utilidad.
Atención: Contenido exclusivo de DesarrolloMultimedia.es. No reproducir. Copyright.

Sustitución de un elemento por otro dentro del mismo sprite:

Un efecto muy usado es el de hacer que los botones parezcan que se hunden al hacer click sobre ellos. Esto se consigue teniendo dos imágenes, una con el botón "sin pulsar" y otra con el botón "pulsado". Supongamos que, en el cast, estos elementos están situados en estos lugares:

número de cast: 11 Nombre: botón no pulsado
número de cast: 12 Nombre: botón pulsado

En el sprite del frame correspondiente colocamos la imagen del botón no pulsado (p.e., en el sprite 15). Para crear el efecto deseado, el script de este botón será:

on mouseDown
set the castNum of sprite 15 = the number of cast "botón pulsado"
updateStage
repeat while the mouseDown
end repeat
set the castNum of sprite 15 = the number of cast "botón no pulsado"
updateStage
if the mouseCast = the number of cast "botón no pulsado" then go "fin"
end


En este caso, "fin" es el nombre del marker a donde saltamos. Una forma más abreviada de escribir esto es la siguiente:

on mouseDown
set the castNum of sprite 15 = 12
updateStage
repeat while the mouseDown
end repeat
set the castNum of sprite 15 = 11
updateStage
if the mouseCast =12 then go "fin"
end


Veamos detenidamente qué pasa en este botón: comenzamos con un "mouseDown" (esto es, pulsamos el botón del ratón). En ese momento, en el sprite 15 se sustituye la imagen que había por otra nueva; estaba la imagen del botón no pulsado (castNum = número de cast = 11 = the number of cast "botón no pulsado") y la sustituimos por la del botón pulsado (castNum = número de cast = 12 = the number of cast "botón pulsado") mediante el comando "set"=Haz que. A continuación actualizamos el stage=refrescamos la pantalla=updateStage. Lo que viene a continuación es un bucle (repeat...end repeat) que hace que el programa se detenga ahí el tiempo que el usuario mantenga pulsado el ratón ("while the mouseDown"). Una vez que el usuario ha levantado el dedo del ratón, pasamos a las sentencias siguientes, que lo que hacen es volver a poner la imagen del botón sin pulsar.

Por último, la sentencia if the mouseCast =12 then go "fin" lo que hace es mirar a ver qué elemento se encuentra debajo del cursor/ratón (the mouseCast). Si es el 12="botón no pulsado", entonces salta a la secuencia "fin"; caso contrario, no pasa nada. Esto sirve para, p.e., cuando hemos hecho click en un botón equivocado y, para paliar la situación, salimos con el cursor fuera de él y soltamos el ratón. Sin esta sentencia, es script podría ser:

on mouseDown
set the castNum of sprite 15 = 12
updateStage
repeat while the mouseDown
end repeat
set the castNum of sprite 15 = 11
updateStage
go "fin"
end


y, cuando levantáramos el dedo del ratón, estuviésemos donde estuviésemos, saltaríamos a la secuencia "fin".

  • rollOver: Esta función indica si el cursor está sobre un sprite determinado o no. Es de la forma rollOver(sprite). Esta función se usa a menudo para crear scripts que realizan una acción cuando el usuario sitúa el cursor sobre un sprite específico. Para verlo más claramente, vamos a coger el ejemplo visto anteriormente de sustitución de una imagen por otra cuando mantenemos el ratón pulsado sobre un botón, y lo vamos a hacer ahora con la función rollOver. Para ello, consideramos, como antes, que en el cast, estos elementos están situados en estos lugares:

    número de cast: 11 Nombre: botón no pulsado
    número de cast: 12 Nombre: botón pulsado

    y que en el sprite 15 del frame correspondiente colocamos la imagen del botón no pulsado. Para simular una pulsación de botón cuando pasemos el cursor por encima de él, el script de la movie (que no el del botón) deberá ser:

    on exitFrame
    if rollOver(15) then
    set the castNum of sprite 15 = 12
    else
    set the castNum of sprite 15 = 11
    end if
    go to the frame
    end


    Este script hace lo siguiente: cuando va a abandonar el frame, comprueba si el cursor está sobre el sprite 15 y, si efectivamente es así, pone la imagen del botón pulsado (número de cast 12); si no es así ("else"), entonces la imagen es la correspondiente al botón no pulsado (número de cast 11). Posteriormente, vuelve al mismo frame (para "detener ahí la movie"). Esto únicamente sustituye, como hemos dicho, una imagen por otra. Si además queremos que cuando estemos sobre el botón (y, por lo tanto, la imagen corresponda a la del botón pulsado) se ejecute una detrminada acción al hacer click sobre él, deberemos programar ese botón. En este caso, pondremos en el script del botón pulsado:

    on mouseUp
    go "curriculum"
    end


    De esta forma, al pasar sobre el botón sin pulsar nos cambiará a botón pulsado y, si además hacemos click sobre él, iremos al marker "curriculum".

  • Ir varios frames adelante/atrás: Como comentamos al principio, una de las formas de saltar a un frame específico era mediante el script:

    on mouseUp
    go to (the frame + 1)
    end


    Este script nos hace saltar al frame siguiente al que estamos al hacer click sobre el objeto en cuestión. Podemos saltar más de uno simplemente cambiando "the frame + 1" por "the frame + x", donde x puede ser cualquier número. Igualmente, podemos ir uno o más frames "hacia atrás", cambiando "the frame + x" por "the frame - x".

  • Salir de la aplicación:

    Como toda aplicación que se precie, lógicamente deberemos incluir en nuestros interactivos un botón para abandonar la aplicación. Aunque en las aplicaciones creadas con Director no es estrictamente necesario, pues siempre se sale de ellas con comando-Q, no está de más ver el script del botón "salir", que es el siguiente:

    on mouseUp
    quit
    end


Comentarios

Los comentarios de los visitantes son para ampliar la
información del artículo. Cualquiera puede participar.

Añadir un comentario al artículo Publicar un comentario del artículo

Se muestra un comentario revisado

 gracias
02/6/10 

Comentario de Miguel Angel:

Hola muy buen tuto y quisiera saber si podrias ayudarme con un problema q tengo estoy trabajando con adobe Director y me falla un poco la programación, te explico el problema: necesito hacer el scrip para q cuando el mause se mueva a la izquierda vaya retrocediendo cabeza lectora cuadro por cuadro, y si se mueve a la derececha avance de la misma manera. busque por todo lado pero solo encuentro los scripts para moverme haciendo click pero yo necesito q solo moviendo el mouse se vaya moviendo la cabeza lectora. si pudieras ayudarme te lo agradeceria muchisimo, de ante mano gracias. mantenemos el contacto, este es mi correo galpolux@hotmail.com Gracias y buena suerte!!!




El autor
Juan Ignacio Rodríguez Navarro
Equipo de desarrollomultimedia.es
Manuales
Categorías

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...

Un lugar donde se muestran las creaciones de los visitantes de DesarrolloMultimedia.es