hitTest se utiliza sobre todo para el control de colisiones en juegos, aunque también se puede utilizar para la confección de puzzles o juegos infantiles del tipo "arrastrar cosas en el lugar apropiado". El ejemplo de hoy es una aproximación al uso de hitTest. La sintaxis más utilizada es:
my_mc .hitTest(target )
donde se evalua si dos clips de película se solapan. Ejemplo:
1.- En mi caso he creado un clip de película en el que he dibujado una caja abierta. He hecho dos copias de este clip y les he variado ligeramente la tinta con el fin de diferenciarlos. A la caja del centro le he dado el nombre de instancia "Box_mc".
2.- He creado un pequeño rectángulo que he convertido en clip de película al que le he asignado el nombre de instancia "ficha1_mc".
3.- A "ficha1_mc" le asignamos el siguiente actionscript:
onClipEvent (enterFrame) {
//si soltamos el rectángulo y no ha colisionado con la caja
if (this.soltar == "si") {
//aplicamos una fórmula de easing
//para quevuelva a su sitio
distancia_x = Math.round((Number(x)-Number(this._x))/2);
distancia_y = Math.round((Number(y)-Number(this._y))/2);
if (Math.abs(distancia_x)<=1 and Math.abs(distancia_y)<=1){
}
else
{
this._x = this._x+distancia_x;
this._y = this._y+distancia_y;
}
}
}
//al presionar
on (press) {
//cambiamos el valor de la variable soltar
soltar = "no"
//y empezamoa a arrastrar el clip
startDrag(this, false);
}
//al soltaro
on (release, releaseOutside) {
//dejamos de arrastrar
stopDrag();
//evaluamos si colisiona con la caja
if(this.hitTest(this._parent.Box_mc)){
//si es asi lo volvemos invisible
this._visible = false
//ejecutamos la pequeña animación de la
//caja
this._parent.Box_mc.gotoAndPlay(2);
}
else
{
//si no colisiona cambiamos el valor de la variable soltar
//para que al evento enterFrame ejecute la fórmula de easing
soltar = "si";
}
}
Descargar Ejemplo » » 



