Auteur: Jérôme Forget. Publié le 6 août 2006.
Dans plusieurs situations, il est utile de détecter si deux clips entrent en collision ou s'ils se touchent. Cela peut servir pour créer des effets de collision (dans un jeu de billard, par exemple), ou pour empêcher un clip de passer par-dessus un autre (pensons aux murs d'un labyrinthe).
La détection de collision peut se faire simplement grâce à la méthode hitTest(). L'usage courant de cette méthode consiste à passer en paramètre à la méthode le nom d'instance du clip avec lequel on veut détecter la collision. Flash effectue le test entre les deux clips, celui sur lequel la méthode est invoquée et l'autre clip mentionné en paramètre.
clipUn.hitTest(clipDeux);
Si les bords extérieurs des deux clips se touchent, la méthode retournera true. Comme la détection de collision s'effectue avec les bords extérieurs des clips, seuls les clips parfaitement rectangulaires produiront des résultats précis. Si la forme des clips n'est pas rectangulaire, les résultats peuvent parfois être décevants et très loin de la réalité. Heureusement, d'autres méthodes avancées permettent d'effectuer des détections de collision plus précises.
Parce que la méthode hitTest() retourne une valeur booléenne, nous l'utiliserons généralement dans un test conditionnel.
if (clipUn.hitTest(clipDeux)) {
trace("Une collision entre les deux clips.");
}