Flash es un software estudiado para la web con el cual se pueden crear efectos
dinámicos y animaciones de alto nivel gráfico sin aumentar excesivamente el peso
del file exportado que se quiere descargar. Pero Flash no es sólo esto. Flash es interactividad.
Todo el que tiene fantasía y sabe usar bien este software es capaz de crear animaciones
con un alto contenido de interactividad que divierte al usuario visitante. Hasta ahora
he intentado explicar lo mejor posible el lenguaje interno de programación
de Flash, su corazón, porque es a través de este lenguaje como es
posible la interacción entre el usuario y la máquina.
Esta lección está dedicada a la propiedad _droptarget.
Habréis visto algún sitio en el que un objeto tenga que trasladarse con el ratón a
un punto preciso de la película, ¿no es así? Precisamente como en este caso (arrastrad al pequeño
dentro del círculo):
La propiedad _droptarget restituye, después del Drag
Movieclip, la clip sobre la que se ha superpuesto la clip arrastrada (si
no se ha arrastrado a ninguna clip, devuelve el valor nulo). De este
modo, añadiendo un control, es posible establece qué tiene que ocurrir en el
caso en que una clip se arrastrase dentro de otra.
En mi ejemplo anterior, si la clip hombre se arrastra al círculo,
primero deja de verse y después se aparta de un frame el movieclip círculo
(frame en el que se mostrará el círculo con el pequeño dentro y el
interruptor "desengancha").
Pero vayamos por partes...
Primero, creamos la clip movieclip hombre y dibujamos al pequeño hombrecillo
del logotipo HTMLpoint. El mismo "pequeñajo" lo usaremos para crear un área
sensible. Un área sensible es una clip botón que contiene
objetos sólo en el frame HIT. De esta manera, el botón resulta
invisible, pero es posible clicar en él. He aquí cómo aparece el botón área_sensible:

Cuando se arrastre la instancia a la clip hombre, el botón
aparecerá transparente y de una tinta única de distinto color:

Arrastrar el botón área_sensible hasta hacerlo
encajar perfectamente con el dibujo del hombrecillo:

El área sensible es necesaria para conseguir que sea
arrastrable la clip hombre. En efecto, el arrastre tiene que activarse
cuando el usuario clica con el ratón sobre la clip hombre y desactivarse cuando
se suelta el pulsante. Para hacer esto es necesario usar un botón
dentro de un movieclip, dado que sólo los movieclip tienen
la posibilidad de tener un nombre en la instancia que les permita activar el
arrastre, y sólo los botones pueden usar la action On Mouse Event.
Para que la clip hombre sea arrastrable incluyámosla como action
del área sensible:
On (Press)
Start Drag ("/hombre", lockcenter)
End On
On (Release)
Stop Drag
End On |
De este modo, cuando el usuario clica sobre el hombrecillo, la clip se convierte en
arrastrable hasta que se suelte el pulsante del ratón.
Creamos también la clip movieclip círculo, dibujamos el círculo
en su interior y le asignamos el mismo nombre a la instancia de ella. Cuidado de
no insertar una clip graphic ya que el nombre de esta clip nos
servirá para el uso de _droptarget, pues este parámetro
restituye exclusivamente nombres de las instancias de movieclip (o películas
externas).
Añádase un frame al movieclip, diséñese el círculo con el hombrecillo
dentro (de hecho, el logotipo completo) e inclúyase un botón
"desengancha" que permita que la operación de arrastre se repita.
En el botón "desengancha" asignense, por ejemplo, estas action:
On (Release)
Set Property ("/uomo", Visibility) = "1"
Set Property ("/uomo", X Position) = "205"
Set Property ("/uomo", Y Position) = "65"
Go to Previous Frame
End On |
que permite ver de nuevo la clip hombre, la coloca en un punto
preciso de la película y vuelve al frame anterior.
Llegados a este punto, en las action del botón área_sensible,
añadimos el control sobre el arrastre:
On (Press)
Start Drag ("/hombre", lockcenter)
End On
On (Release)
If (_droptarget eq "/círculo")
Set Property ("/hombre", Visibility) = "0"
Begin Tell Target ("/círculo")
Go to and Stop (2)
End Tell Target
End If
Stop Drag
End On |
Viene controlado el valor de _droptarget. Si es igual a
"/círculo" (nótese que está presente también el recorrido del movieclip)
entonces se hace invisible la clip hombre y se direcciona al frame
número 2 el movieclip círculo.
Y aquí ya el juego está hecho. No queda sino testar nuestra nueva
animación interactiva. :-)