2012-10-25 49 views
0

我有一個數組:的Flash AS3陣列和循環和功能

var type:Array = [[[1,2,3], [1,2,3],[1,2,3]], 
      [[1,2,3], [1,2,3],[1,2,3]]]; 

然後我環路它來調用一個函數:

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

那我打電話的功能是:

public function addGrid(col,row:int, type:Array) { 
    var newGird:GridE = new GirdE(); 
    newGird.col = col; 
    newGird.row = row; 
    newGird.type = type; 
} 

希望它清楚我需要什麼。我的網格可以是一個很大的數組是爲陣列樣本在這裏網格將是3(列)x2(行)

+0

對不起,這是不明確的。有什麼問題? – Florent

+0

我需要使用addGird函數創建一個GIRD表單數組,其中有3個變量需要來自數組列號,行號和類型編號。 ,在這個例子中,我的眼睛列表中的數組是3x2的網格。 如果你看看代碼,你應該明白什麼即時通訊嘗試實現。 – user1709407

回答

2

ActionScript 3 multidimensional arrays可能會引用使用多個數組索引循環行和列。

根據您的數組結構,首先定義行,然後定義列。

這使得單元格值查找:

grid[row][col] 

遍歷所有元素可以實現爲:

private var grid:Array = [[[ 1, 2, 3 ], [ 1, 2, 3 ], [ 1, 2, 3 ]], 
          [[ 1, 2, 3 ], [ 1, 2, 3 ], [ 1, 2, 3 ]]]; 

public function loop() 
{ 
    // for every row... 
    for (var row:uint = 0; row < grid.length; row++) 
    { 
     // for every column... 
     for (var col:uint = 0; col < grid[row].length; col++) 
     { 
      // your value of "1, 2, 3" in that cell can be referenced as: 
      // grid[row][col][0] = 1 
      // grid[row][col][1] = 2 
      // grid[row][col][2] = 3 

      // to pass row, col, and the value array to addGrid function: 
      addGrid(row, col, grid[row][col]); 
     } 
    } 
} 

public function addGrid(row:int, col:int, value:Array):void 
{ 
    /* ... */ 
} 
+0

感謝這個工程,我自己找到了類似的答案, 我只用了不同的調用部分: addGrid(gird [row] [col] [0],gird [row] [col] [1],gird [row ] [山口] [2]); – user1709407