O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.12. Getting a Movie Clip’s Boundaries

Problem

You want to know the minimum and maximum x and y coordinates that determine the edges of a movie clip (its bounding box).

Solution

Use the getBounds( ) method.

Discussion

You can determine the left, right, top, and bottom coordinates of a movie clip within its parent movie clip using a combination of the _x, _y, _width, and _height properties:

left   = myMovieClip._x;
right  = left + myMovieClip._width;
top    = myMovieClip._y;
bottom = top + myMovieClip._height;

While this technique works, it is rather intensive and inefficient when compared to the getBounds( ) method. The getBounds( ) method returns an object with four properties:

xMin

The leftmost x coordinate of the movie clip

xMax

The rightmost x coordinate of the movie clip

yMin

The topmost y coordinate of the movie clip

yMax

The bottommost y coordinate of the movie clip

The four properties define the bounding box of the visible content within the movie clip. (Note that y coordinates increase as you move down the screen, which is the opposite of the Cartesian coordinate system.) When you call getBounds( ) without parameters, it returns an object with values relative to the movie clip’s coordinate system. You can also pass the method a reference to a target coordinate system (another movie clip) for which you want the returned object’s values to be given:

// Include DrawingMethods.as from Chapter 4 for its drawCircle(  ) method. #include "DrawingMethods.as" // Create a new movie clip and draw ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required