User Guide
Managing movie clip depths 215
Managing movie clip depths
Every movie clip has its own z-order space that determines how objects overlap within its parent
SWF file or movie clip. Every movie clip has an associated depth value, which determines if it will
render in front of or behind other movie clips in the same movie clip Timeline. When you create
a movie clip at runtime using
MovieClip.attachMovie(),
MovieClip.duplicateMovieClip(), or MovieClip.createEmptyMovieClip(), you always
specify a depth for the new clip as a method parameter. For example, the following code attaches
a new movie clip to the Timeline of a movie clip named
container_mc with a depth value of 10.
container_mc.attachMovie("symbolID", "clip1_mc", 10);
This example creates a new movie clip with a depth of 10 within the z-order space of
container_mc.
The following code attaches two new movie clips to
container_mc. The first clip, named
clip1_mc, will render behind clip2_mc because it was assigned a lower depth value.
container_mc.attachMovie("symbolID", "clip1_mc", 10);
container_mc.attachMovie("symbolID", "clip2_mc", 15);
Depth values for movie clips can range from -16384 to 1048575. If you create or attach a new
movie clip on a depth that already has a movie clip, the new or attached clip will overwrite the
existing content.
The MovieClip class provides several methods for managing movie clip depths; for more
information, see
MovieClip.getNextHighestDepth(), MovieClip.getInstanceAtDepth(),
MovieClip.getDepth(), and MovieClip.swapDepths() Flash ActionScript Language Reference.
For more information on movie clip depths, see the following topics:
• “Determining the next highest available depth” on page 215
• “Determining the instance at a particular depth” on page 216
• “Determining the depth of an instance” on page 216
• “Swapping movie clip depths” on page 216
Determining the next highest available depth
To determine the next highest available depth within a movie clip, use
MovieClip.getNextHighestDepth(). The integer value returned by this method indicates the
next available depth that will render in front of all other objects in the movie clip.
The following code attaches a new movie clip, with a depth value of 10, on the root Timeline
named
file_menu. It then determines the next highest available depth in that same movie clip
and creates a new movie clip called
edit_mc at that depth.
this.attachMovie("menuClip","file_mc", 10, {_x:0, _y:0});
trace(file_menu.getDepth());
var nextDepth = this.getNextHighestDepth();
this.attachMovie("menuClip", "edit_mc", nextDepth, {_x:200, _y:0});
trace(edit_menu.getDepth());