2011-03-10 12 views
0

私は、rotateXプロパティをインクリメントしてアニメーション化しているスプライトの配列を持っています。アレイのの最後のアイテムが一杯になったら、私は彼らがすべて消えることを望んでいます。問題は、ランダム化された関数によって回転速度が生成されているため、最後の配列を見つけるために配列の最後に行くことはできません。毎回それは別のものになるでしょう。配列の最後の項目が停止したときを検出する

だから私はスプライトの配列を持っている:

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

関連する問題