2012-11-10 102 views
0

多數組正確讀入 但讀出他弄亂了的數組。 假設要對數組中的每個元素執行的操作,當2個數組中的更多索引創建時,他不再執行此操作。讀出多維數組

當我在第2個數組中的第二個索引使他不再對先前索引執行此操作時,只有最後一個索引。

感謝

private var Enemy:Array = new Array();//1st array 
private var EnemyHull:Array = new Array(); 
private var waves:Array = new Array();//2 array ==> array 1 get in this 

private function enterFrame(e:Event):void 
    {        
     //Enemy Ai 
     for(var i2:uint; i2 < waves.length; i2++){ 
      for(var i:uint; i < Enemy.length; i++){ 
       waves[i2][i].x -= 1;//when a second index in 2 array i made he doesn't do this action anymore on previous index, only the last made index. 
      } 
     } 
    } 

private function enemySpawnen(event:TimerEvent):void 
    {   
     for(var i:uint = 0; i < hoeveelheidEnemy;i++){ 
      // 
      } 

      if(Enemy[i] != null){; 
       viewContainer.addChild(Enemy[i]); 
       // 
      } 
     } 
     waves[iwaves] = Enemy; 
     iwaves++; 
    } 

function shoot(e:Event):void 
      { 
       //     
       try{ 
        for(var i2:uint; i2 < waves.length; i2++){ 
         for(var i:uint = Enemy.length-1; i >= 0;i--){ 
          if(kogel.hitTestObject(waves[i2][i])){ 
           // 
           } 
          } 
         } 
        } 
       } 
        catch(e:Error){ 

        } 
       } 
      } 

回答

0

您的循環錯過一個重要的事情正常工作:你有你的迭代器(i或I 2)初始化爲初始值。

您寫道:

for(var i2:uint; i2 < waves.length; i2++){ 
     for(var i:uint; i < Enemy.length; i++){ 
      waves[i2][i].x -= 1; 
     } 
    } 

但你需要的是:

for(var i2:uint = 0; i2 < waves.length; i2++){ 
     for(var i:uint = 0; i < Enemy.length; i++){ 
      waves[i2][i].x -= 1; 
     } 
    } 

不要忘記在循環聲明= 0