2011-03-10 69 views
0

我有一組精靈,我通過增加rotationX屬性來設置動畫。我想要的是,在陣列中的最後項目已經到了完整的圈子後,它們全部消失。問題在於它們的旋轉速度是由一個隨機函數產生的,所以我不能只是到數組的最後找到最後一個。每次它將是一個不同的。檢測陣列中最後一個項目何時停止

所以我有精靈的數組:

for(var i:int=0; i<arrSprites.length; i++) 
{ 
    addChild(arrSprites[i]) ; 
} 

然後,我有我的事件偵聽器:

addEventListener(Event.ENTER_FRAME, loop); 

而且我的處理程序:

private function loop(e:Event):void 
{ 
    for(var i:int=0; i<arrSprites.length; i++) 
    { 
     var currentSprite:Sprite = arrSprites[i]; 
     if(currentSprite.rotationX < 361) //this will detect the first one 
                 //to finish but I want the last 
      { 
       currentSprite.rotationX += arrSprites[i].speed; //random speed 
      } 
      else 
      { 
       deleteTheSprites(); //removes all sprites and does other stuff 
      } 


     } 
    } 

有一定是一個優雅這樣做的方法。有人知道這是什麼嗎?

感謝,

大衛

回答

2
private function loop(e:Event):void 
{ 
    var finished : int = 0; // will count the number of sprites finished 
    for each (var current:Sprite in arrSprites) 
    { 
     if (current.rotationX < 361) current.rotationX += current.speed; 
     else if (++finished == arrSprites.length) deleteTheSprites(); // executes only if all sprites have finished 
    } 
} 
+0

輝煌,是的,優雅的。謝謝。 – David

相關問題