0

私は配列を持っています:

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;
}

それが私が必要なものを明確にすることを願っています。配列はここの配列サンプル用であるため、私のGirdは大きくなる可能性があります。Girdは3(Columns)x2(Rows)になります。

4

1 に答える 1

2

行と列をループすることにより、複数の配列インデックスを使用してActionScript 3多次元配列を参照できます。

配列構造ごとに、最初に行を定義し、次に列を定義します。

これにより、セル値のルックアップが行われます。

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
{
    /* ... */
}
于 2012-10-25T15:58:17.323 に答える