Monday, September 28, 2009

Arrange MovieClip in as3

1. Create a Empty Movie Clip named container.

2. Double click the container and create five MovieClip mc width 250 height 50 and name it as pow_1.....to....pow_5.

In The Maintimeline of the fla write

var myObj:Fills = new Fills(this)

Create a As file and save the file as
Fills.as

write the following code..

package {
import flash.display.*;
import flash.events.*;
import fl.transitions.*;
import fl.transitions.easing.*;
public class Fills extends MovieClip {
private var ref:MovieClip;
private var xpos:Number = 0;
private var Namearr:Array = new Array();
private var Yposarr:Array = new Array();
private var Mc_name:MovieClip;
private var myTween1,myTween2:Tween;
public function Fills(mc:MovieClip):void {
ref = mc;
ref.container.addEventListener(MouseEvent.MOUSE_DOWN,arrfun);
for (var i:Number = 1; i<=5; i++) {
var bb_mc:MovieClip = ref.container.getChildByName("pow_"+i) as MovieClip;
Yposarr.push(bb_mc.y);
Namearr.push(bb_mc.name);
}
}
private function arrfun(evt:MouseEvent):void {
trace("call")
ref.container.removeEventListener(MouseEvent.MOUSE_DOWN,arrfun);
Mc_name = evt.target as MovieClip;
for (var i:Number = 1; i<=Namearr.length; i++) {
if (Mc_name.name == Namearr[i-1]) {
spli(i);
}
}
}
private function spli(Num:Number):void {
var spliced:Array = Namearr.splice(Num-1,1);
Namearr.unshift(spliced);
var tar_mc:MovieClip =ref.container.getChildByName(Namearr[0]) as MovieClip;
ref.container.setChildIndex(tar_mc,ref.container.numChildren-1);
var myTween1:Tween = new Tween(tar_mc, "y", Strong.easeOut, tar_mc.y, 0, 2, true);
myTween1.addEventListener(TweenEvent.MOTION_FINISH,newfun);
}
private function newfun(evt:TweenEvent):void {
for (var i:Number = 1; i<5; i++) {
var n_mc:MovieClip =ref.container.getChildByName(Namearr[i]) as MovieClip;
var myTween2:Tween = new Tween(n_mc, "y", Strong.easeOut, n_mc.y, Yposarr[i], 1, true);
myTween2.addEventListener(TweenEvent.MOTION_FINISH,crefun);
}
}
private function crefun(evt:TweenEvent):void {
ref.container.addEventListener(MouseEvent.MOUSE_DOWN,arrfun);
}
}
}