Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.04.2014, 01:19
miskalik вне форума Посмотреть профиль Отправить личное сообщение для miskalik Найти все сообщения от miskalik
  № 1  
Ответить с цитированием
miskalik
 
Аватар для miskalik

Регистрация: Feb 2011
Сообщений: 12
Question Неразбериха с массивом.

Целью моей задачи было присвоить ячейкам одного массива разные состояния другого массива

Код AS3:
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)
Я пробовал записывать как String. Работает но тип уже не Array будет.
Я думаю записывается ссылка на mass.
Как записать значение, сохранив тип Array?

Заранее спасибо!

Старый 24.04.2014, 01:33
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Вот так можно сделать
Код AS3:
mainMass[0] = mass.slice();
Тут почитать

Старый 24.04.2014, 01:37
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Массивы (да и обычные переменные тоже) хранят ссылки на объекты, а не копии объектов. То есть в нулевой ячейке массива mainMass хранится ссылка на массив mass, или его адрес. Что бы ни происходило с массивом mass, всегда будет происходить и с mainMass[0] — это просто один и тот же объект, на который есть две разные ссылки. Если Вы хотите хранить РАЗНЫЕ объекты, то Вам нужно СОЗДАТЬ эти разные объекты. Например, mainMass[0] = mass.concat();
__________________
Reality.getBounds(this);

Старый 24.04.2014, 01:39
miskalik вне форума Посмотреть профиль Отправить личное сообщение для miskalik Найти все сообщения от miskalik
  № 4  
Ответить с цитированием
miskalik
 
Аватар для miskalik

Регистрация: Feb 2011
Сообщений: 12
Спасибо за быстрый ответ! Все встало на свои места.
Не знал такого о массивах, надо бы почитать

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
array , значения , массив , ссылка
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.