我需要製作一個動畫,其中有許多從左到右飛行的對象(約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