我想移动数组中的所有对象,产生体育场波浪效果。
我想根据舞台上的 y 值移动对象。我所有的方块大小都是 50x50。我想将它们向上移动然后向下移动。下面是我的代码:
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?
}
您需要在 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");
}
还有一件事为什么你在 moveUp 函数中使用计时器 t2 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)