2010-01-29 2 views
0

Я хочу переместить все объекты в массиве, создавая волновой эффект стадиона, как это сделать? Я хочу переместить объекты на основе их значения y на сцене ... все мои квадраты размером 50x50. Я хочу переместить их, а затем переместить их. Ниже мой код, пожалуйста, дайте мне совет. Благодаря!(ActionScript) Перемещение объектов в массиве, создающем волновой эффект стадиона

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

Вам необходимо захватить движимый объект в функции moveDown и применить анимацию движения (увеличение 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"); 
}
Еще одна причина, почему вы используете таймер t2 в функции moveUp.

+0

Я забыл удалить. Первая попытка была неудачной. – yeeen

+0

Я не знал, что могу использовать e.target.obj, большое вам спасибо! – yeeen

+0

Как проверить, анимирован ли последний объект в массиве? – yeeen

Смежные вопросы