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.16. Changing Stacking Order

Problem

You want to swap the depths of two movie clips.

Solution

Use the swapDepths( ) method.

Discussion

The swapDepths( ) method swaps the depths of any two movie clips. You should call it from one of the two movie clips and pass it a reference to the other:

myMovieClip1.swapDepths(myMovieClip2);

One way in which this method is particularly useful is in swapping the depths of two movie clips when hitTest( ) detects that one overlaps the other. The following example uses this concept but also illustrates the problem that can occur when trying to use this technique.

Warning

The following example shows a white circle and a black circle that overlap and rapidly change depths. The result is a very fast blinking effect, which may be induce seizures in readers prone to epilepsy or may induce nausea in sensitive viewers. Please exercise caution.

The following code swaps two clips’ depths when they overlap:

// Include DrawingMethods.as from Chapter 4 for its drawCircle(  ) method. #include "DrawingMethods.as" // Draw two circle movie clips: one black and one white. _root.createEmptyMovieClip("circle1", 1); circle1.lineStyle(1, 0x000000, 100); circle1.beginFill(0xFFFFFF, 100); circle1.drawCircle(100); circle1.endFill( ); _root.createEmptyMovieClip("circle2", 2); circle2.lineStyle(1, 0x000000, 100); circle2.beginFill(0, 100); circle2.drawCircle(100); circle2.endFill( ); // Set each movie clip to be on the visible part of the Stage. circle1._x = circle2._x = 200; circle1._y ...

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