|
|
|||||
Регистрация: Feb 2011
Сообщений: 12
|
Неразбериха с массивом.
Целью моей задачи было присвоить ячейкам одного массива разные состояния другого массива
var mainMass:Array = new Array(); var mass:Array = new Array(1,2); //Хочу присвоить главному массиву текущее состояние простого mainMass[0] = mass; trace(mainMass[0]); //(1,2) //Без кода.. К примеру тут я меняю местами значения... Из (1,2) в (2,1) //И заношу новое положение в другую ячейку новое состояние mainMass[1] = mass; trace(mainMass[1]); //(2,1) //Проблема в том что теперь trace(mainMass[0]); //Выведет уже не (1,2) а (2,1) Я думаю записывается ссылка на mass. Как записать значение, сохранив тип Array? Заранее спасибо! |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Массивы (да и обычные переменные тоже) хранят ссылки на объекты, а не копии объектов. То есть в нулевой ячейке массива mainMass хранится ссылка на массив mass, или его адрес. Что бы ни происходило с массивом mass, всегда будет происходить и с mainMass[0] — это просто один и тот же объект, на который есть две разные ссылки. Если Вы хотите хранить РАЗНЫЕ объекты, то Вам нужно СОЗДАТЬ эти разные объекты. Например, mainMass[0] = mass.concat();
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2011
Сообщений: 12
|
Спасибо за быстрый ответ! Все встало на свои места.
Не знал такого о массивах, надо бы почитать |
Часовой пояс GMT +4, время: 07:40. |
|
« Предыдущая тема | Следующая тема » |
Теги |
array , значения , массив , ссылка |
|
|