Este código sirve para juegos, por ejemplo para vestir a un muñeco de nieve o ponerle distintas piezas a un coche, o en definitiva para lo que se nos ocurra.
Así que vayamos a la parte divertida, el código :)
Este ejemplo consistirá en dos clips, uno que será el que se va a arrastrar, y otro que será el que esté quieto en el escenario y que servirá de referencia cuando el primero pase por encima de el.
Por lo que a cada uno le pondremos un nombre de instancia, al primero le ponemos clip1 y al segundo clip2
Hay que resaltar que el clip2 debe estar debajo del clip1, por lo que ponemos cada uno en un layer, estando el clip2 debajo del clip1.
En nuestra película principal ponemos en el frame 1:
stop();
clip1inicioX = clip1._x;
clip1inicioY = clip1._y;
clip1inicioX y clip1inicioY son las coordenadas iniciales del clip1.
Estas nos servirán más adelante por eso las declaramos ahora.
El stop() se pone porque toda la acción transcurrirá en un solo frame.
Para hacer el drag 'n' drop de un movie clip se pone un botón dentro de un clip y con éste conseguimos arrastrar el clip
Ahora vamos al botón que hemos creado dentro del clip1, y en este le ponemos las siguientes acciones:
on (press) {
startDrag("_root.clip1", true);
}
on (release) {
stopDrag();
if (_root.clip1.hitTest(_root.clip2)) {
_root.clip1._x = _root.clip2._x;
_root.clip1._y = _root.clip2._y;
} else {
_root.clip1._x = _root.clip1inicioX;
_root.clip1._y = _root.clip1inicioY;
}
}
Primera comprobación:
if (_root.clip1.hitTest(_root.clip2)) {
_root.clip1._x = _root.clip2._x;
_root.clip1._y = _root.clip2._y;
}
Por último la segunda comprobación:
else {
_root.clip1._x = _root.clip1inicioX;
_root.clip1._y = _root.clip1inicioY;
}
Archivos del tutorial
Si tienes alguna pregunta de este tutorial; puedes hacerla aqui en los foros