views:

276

answers:

1

I want to move all objects in an array producing a stadium wave effect, how do i do that? I want to move the objects based on their y-value on the stage... all my squares are of 50x50 in size. I want to move them up then move them down. Below is my code, please give me advice. Thanks!

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 

var t1:Timer = new Timer(100, 0); 
var index:int = 0; 
t1.addEventListener(TimerEvent.TIMER, ping); 
t1.start();
var array:Array = new Array();

addToArray();
function addToArray():void {
 for(var i=0; i<10; i++) {
  array[i] = new Sq();
  array[i].x = i*50 + 50;
  array[i].y = 100;
  addChild(array[i]);
 } 
}

function ping(e:TimerEvent) { 
 if(index < array.length){ 
  moveUp(array[index]);
  index ++; 
 } 
} 

function moveUp(sq:Sq):void{ 
    var tweenRight:Tween = new Tween(sq,"y",None.easeOut, sq.y, sq.y - 50, 1, true); 
    tweenRight.addEventListener(TweenEvent.MOTION_FINISH, moveDown); 
}

function moveDown(e:TweenEvent):void {
   //what to put here?
   //or this is not the right way to do this?
}
+1  A: 

You need to grab the tweened object in moveDown function and apply motion tween (increase y).

function moveDown(e:TweenEvent):void {
  var sq:Sq = Sq(e.target.obj);
  var tweenDown:Tween = new Tween(sq,"y",None.easeOut, sq.y, sq.y + 50, 1, true);
  if (Sq(e.target.obj) === array[array.length - 1]) {
    trace("this is the last tween down");
    tweenDown.addEventListener(TweenEvent.MOTION_FINISH, lastTweenFinish);
  }
}
function lastTweenFinish(e:TweenEvent):void {
  trace("DONE");
}
One more thing why are you using Timer t2 in moveUp function.

bhups
I forgot to remove. Tt one was a failed attempt.
yeeen
i didn't know that i can use e.target.obj, thank you so much!
yeeen
How do check if the the last object in the array has animated?
yeeen
Edited the answer with the same. And one sincere advice, first try to look into Language Reference. :)
bhups
The Language Reference got too much info, sometimes it is just hard to find the things i want w/o enough clues...
yeeen