Многомерные массивы в AS3 - PullRequest
1 голос
/ 05 мая 2011

Я сейчас играю с 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;
        }
    }
}

Эта функция вызывается позже в главном цикле для инициализации и сброса «платы», почему она не работает. Единственное отличие документации AS3 состоит в том, что это делается в функции. Есть ли проблема объема?

Благодарю вас в ожидании, Никлас Восс

P.S. Я надеюсь, что кто-то может сказать мне, почему это не работает и как это сделать правильно ...

Ответы [ 2 ]

5 голосов
/ 05 мая 2011

У вас есть i там, где должен быть j.

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

Это должно решить ваши проблемы.

for (j = 0; j < 40; j++) {
3 голосов
/ 05 мая 2011

Вам не нужно определять длину массива в 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());
...