0

Hello
I have a quick question. I will have to learn syntax for action script. Before I research my objective. Can someone enlighten me with a yes or no (example code would be awesome).
Question: Can I create a Array of symbols and then manipulate them by making them apear and disapear from a lower layer. (Bring forward & move back)?
Or is there another way?
Thanks
Steve

2
Contributors
1
Reply
3
Views
9 Years
Discussion Span
Last Post by erico564
0

It's definitely possible to switch the stacking order of symbols. The manner in which you do it differs in ActionScript 2 and ActionScript 3, though.

IN AS2:
You will use the method "swapDepths" and "getNextHighestDepth()" in order to move a symbol to the top.

// First, create an array:
var myArray:Array = new Array(mySymbol1, mySymbol2, mySymbol3);

// This code will move mySymbol1 to the very front
mySymbol1.swapDepths(this.getNextHighestDepth());

// This code will move the second item in the array to the very front
myArray[1].swapDepths(this.getNextHighestDepth());

// This code will move the third item in the array to the very front when the user clicks on mySymbol1
mySymbol1.onRelease = function() {
   myArray[2].swapDepths(this._parent.getNextHighestDepth());
}

In AS2, it's important to keep an eye on the target. You'll notice in the first two examples, I use "this" to indicate the movie clip that flash should determine the "getNextHighestDepth" value for, but in the last one I use "this._parent". That's because in a mouse function like onRelease, "this" refers to the movie clip that called the function.

IN AS3:
It's similar to AS2, except now you're using setChildIndex instead of swapDepths and numChildren instead of getNextHighestDepth().

// First, create an array:
var myArray:Array = new Array(mySymbol1, mySymbol2, mySymbol3);

// This code will move mySymbol1 to the very front
this.setChildIndex(mySymbol1, this.numChildren - 1);

// This code will move the second item in the array to the very front
this.setChildIndex(myArray[1], this.numChildren - 1);

// This code will move the third item in the array to the very front when the user clicks on mySymbol1
mySymbol1.addEventListener(MouseEvent.CLICK,swapDepths);

function swapDepths(e:Event):void {
	this.setChildIndex(myArray[2], e.target.parent.numChildren - 1);
}

Again, note that you need to be careful in your targeting. For example, in the button click you need to use "e.target.parent" in order to indicate the parent of the clicking movie clip.

Have fun!

--eric

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.