Страница 1 из 1

Обращение к параметрам двумерного массива

Добавлено: 13 фев 2013, 15:26
Ugly
Собственно, проблема описана в названии.
Вот я создал двумерный массив:

Код: Выделить всё

    var dxy = 80;        var row:Array = new Array();         var fieldAr:Array = new Array(); for (var i = 0; i < 27; i++) {                fieldAr[i] = row;                for (var j = 0; j < 9; j++) {                    row[j] = new Square();                    addChild(row[j]);                    row[j].x = j * dxy;                    row[j].y = i * dxy;                }            }
и всё вроде бы хорошо, объекты отображаются как надо, но при обращении к любому из них берется почему-то именно значение последней строки. При том столбцы (т.е. параметры массива "row") определяются правильно, но строка (т.е. сам массив "row") выбирается исключительно самый последний.
Обращаться пробую, к примеру, так:

Код: Выделить всё

 trace(fieldAr[14][2].x, fieldAr[14][2].y); 
Догадываюсь, что проблему едва ли можно назвать проблемой и решается она в одно действие, но что-то никак допереть самому не получается.

Re: Обращение к параметрам двумерного массива

Добавлено: 13 фев 2013, 16:05
Ugly
Всё, спасибо, разобрался сам. Уже не первый раз допускаю подобную ошибку.

Re: Обращение к параметрам двумерного массива

Добавлено: 13 фев 2013, 23:16
Casperovskii
Ugly
А косяк то в чем? И раз уж есть решение, может, нам его продемонстрируешь?

Re: Обращение к параметрам двумерного массива

Добавлено: 14 фев 2013, 00:59
Alazaur
Casperovskii, в этом:

Код: Выделить всё

fieldAr[i] = row; //Во все элементы передается один массив созданный до циклов

Код: Выделить всё

fieldAr[i] = new Array(); //Правильный вариант

Re: Обращение к параметрам двумерного массива

Добавлено: 14 фев 2013, 11:56
Ugly
Меня опередили)
Ну конечно, это же очевидно (во всяком случае, теперь :lol: ). По сути, проблема заключалась даже не столько в массиве, сколько в структуре, а я долго пытался найти ошибку именно в первом.