
Con il metodo htiTest() si possono rilevare 3 tipi di collisioni:
- Fra due movieClip
- Fra un movieClip e un punto
- Fra una forma e un punto
Collisioni fra due movieClip
Questo tipo di collisione avviene se i bounding box di 2 clip si intersecano, indipendentemente dal fatto che anche il contenuto di essi si "tocchi"

myMovieClip.hitTest(targetMc)
Ecco un esempio:
con il relativo codice:
function inizia() {
this.onEnterFrame = function() {
forma2_mc._x = _xmouse;
forma2_mc._y = _ymouse;
if (forma2_mc.hitTest(forma1_mc)) {
test_txt.text="contatto"
} else {
test_txt.text="";
}
};
}
inizia();
Collisioni tra un movieClip e un punto
myMc.hitTest(x,y)
Questo tipo di collisione avviene quando un punto, identificato nello spazio attraverso le sue coordinate x e y, si trova nel bounding box di un mc.
Nell'esempio sottostante, quando il mouse si trova nel bounding box del clip (evidenziato con un riquadro grigio), facciamo partire una animazione:
il codice:
_root.onMouseDown = function() {
var mx = _xmouse;
var my = _ymouse;
if (balloon_mc.hitTest(mx, my)) {
balloon_mc.play();
}
};
Da notare come l'animazione parta anche cliccando al di fuori della forma ma dentro al riquadro o bounding box.
Collisioni tra una forma e un punto
myMc.hitTest(x,y,true);
L'aggiunta del parametro true consente di non considerare il bounding box, bensì un oggetto all'interno di un clip. Vediamo come cambia l'esempio precedente. Provate a cliccare in un'area fra la forma e il bounding box, non accadrà nulla. L'area interessata alla collisione è diventata la forma presente all'interno del clip:
il codice:
_root.onMouseDown = function() {
var mx = _xmouse;
var my = _ymouse;
if (balloon_mc.hitTest(mx, my, true)) {
balloon_mc.play();
}
};


0 commenti:
Posta un commento