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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access