我需要制作一个动画,其中有许多从左到右飞行的对象(约500个),具有不同的延迟,持续时间和目的地。 但是,我需要运行另一个功能,一旦所有的对象已经到达他们的目的地。如何在as3中使用绿色按钮补间数个对象?
我试图让一个循环检查每次当一个对象完成其飞行时间。那就是:
...
for(var i:int = 0; i < objs.length; i++)
Tweenlite.to(obj[i], duration, {delay:delay, x:destination.x, y:destination.y, onComplete:CheckAllComplete});
...
private function CheckAllComplete():void
{
for(var i:int =0 ;i < objs.length; i++)
{
if(Tweenlite.getTweensOf(obj[i]).length > 0)
return;
}
... // if all the flights complete
}
但是我认为这对于CPU来说是非常笨重的。
所以,我的问题是,如何我认为所有的对象作为一个吐温,只是添加onComplete
来解决这个问题?
类似:
var tween:*;
for(...)
tween.add(obj[i], duration, {...});
tween.onComplete = CompleteCallback;
我相信你可以创建一个索引,并增加它每次Tween完成时,检查这个索引是否等于您的对象数量。如果是这样,您可以停止该过程。 – gabriel 2015-02-10 08:02:31