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