11.16. Detecting Collisions (or Overlaps) Between Two Movie Clips

Problem

You want to be able to detect when two movie clips have collided or are overlapping.

Solution

Use the hitTest( ) method.

Discussion

There are plenty of reasons why you might want to detect whether two movie clips are overlapping. Here is a brief list of just a few examples:

  • Create collision effects whereby two movie clips bounce off of one another.

  • Create movie clips that cannot pass through other movie clips. An example of this would be the walls of a maze.

  • Detect overlaps between movies to switch the stacking orders.

You can detect when two movie clips are overlapping by using the hitTest( ) method. This method has two variations on its use. We’ll look at the first one in this recipe.

The other variation is used primarily for more advanced collision detections, and you can read about it in the ActionScript Cookbook (O’Reilly, 2003).

The basic use of the hitTest( ) method involves passing the method a reference to the other movie clip instance with which you want to perform the test. Flash then performs a test between the movie clip instance from which the method is invoked and the movie clip instance you pass the method as a parameter.

	mOne.hitTest(mTwo);

If the bounding boxes of the two movie clips overlap, the method returns true. Otherwise, the method returns false. It is important here to note that because the bounding boxes are used to perform the test, only rectangular movie clips can return completely accurate ...

Get Flash 8 Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.