Botones interactivos.

Muchas veces probablemente, utilizando una aplicaciŪn multimedia o un programa hemos visto esos botones que cambian de forma al rozar o al pulsar sobre ellos. Veamos como se hace esto en Director.

En primer lugar tenemos importamos en la ventana Cast los tres gr·ficos del botŪn: El botŪn en reposo, rozado y pulsado.
En este caso ocupar·n las casillas del Cast, 4, 5 y 6 respectivamente.
Y adem·s importamos un sonido que ser· el que se reproduzca al pulsar sobre el botŪn, en el ejemplo se llama "CLIC", y ocupar· la casilla n† 7 del Cast, por ejemplo.
 
Los tres estados del botŪn:
 
 
Ahora debemos colocar en el score el boton en reposo, en este caso a partir del cuadro 5 ocupando tres cuadros del Score.
En el ultimo de los tres cuadros, hacemos doble clic en el canal de script, con lo que se nos abre la ventana script para poder escribir nuestro codigo Lingo que se ocupara de controlar distintos aspectos:
on exitFrame
go 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
-- eliminamos el "puppet" del sprite por lo que deja de estar controlado por Lingo y vuelve a su estado original --
updatestage
end if
-- fin de la sentencia if() --
end
-- fin del Script --
Si ahora ponemos a andar la pelicula, podremos probar nuestro script rozando el botŪn con el cursor. Pero aun falta el Script que har· que el botŪn cambie al pulsar sobre Čl y emita un sonido.
Para esto seleccionamos el sprite botŪn en el frame o frames en donde queremos activar su script, en este caso en la ultima casilla en donde hemos colocado el script de score anterior, ya que es ahi donde la pelicula se detiene. Con el Sprite seleccionado, vamos al men™: Modify > Sprite > Script: con los que se nos abre otra venatna de Script con el handler:
on mouseDown
end
Aqui 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
end mouseUp
end
Con esto tenemos un botŪn, o los que queramos, que responden a nuestras acciones con el ratŪn.

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

Sin embargo, las nuevas versiones han avanzado bastante al respecto, por lo que prŪximamente habr· un capitulo exaustivo sobre los principales eventos de ratŪn para las nuevas versiones de Director tratando los handlers:

"on mouseEnter me", "on mouseLeave me", "on mouseDown me", "the mouseLoc", "the mouseWord", etc...