AS3中的多维数组

时间:2011-05-05 01:14:36

标签: flex actionscript-3 multidimensional-array

我目前正在玩flex,我有C ++背景,所以我不习惯AS3。 问题出在主* .mxml文件中我有fx:script块,我尝试定义一个多维数组:

public var Board:Array = new Array(25);

我使用函数初始化2d数组:

public function initBoard():void {
    var i:int;
    var j:int;
    for (i = 0; i < 25; i++) {
        Board[i] = new Array(40);
        for (j = 0; i < 40; j++) {
             Board[i][j] = 0;
        }
    }
}

此函数稍后在主循环中调用init并重置“board”为什么它不起作用。与AS3文档的唯一区别在于它是在函数中完成的。是否存在范围问题?

期待感谢你, 尼克拉斯沃斯

P.S。我希望有人可以告诉我为什么它不起作用以及如何做到这一点......

2 个答案:

答案 0 :(得分:5)

你有i应该有j。

for (j = 0; i < 40; j++) {

这应该可以解决你的问题。

for (j = 0; j < 40; j++) {

答案 1 :(得分:3)

您不需要在AS3中定义数组长度 - 我只使用[]运算符来创建新数组。您还使用了i,其中最内层j循环中需要for

function initBoard():Array
{
    var board:Array = [];

    var i:int = 0;
    var j:int;

    for(i; i<25; i++)
    {
        board[i] = [];

        j = 0;
        for(j; j<40; j++)
        {
            board[i][j] = 0;
        }
    }

    return board;
}


trace(initBoard());