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

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

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
По умолчанию Обращение к переменной

Допустим, есть массив, и есть переменная, которая ссылается на ту же область в памяти, что и одна из ячеек массива. Один ли это и тот же обьект?
Код AS3:
var arr:Array=["hello", "bye", "nm"];
 
var oneOfCells:String = arr[1];
Можно ли изменить имя переменной, обращаясь к ячейке массива?

Код AS3:
arr[1].name = String("oneOfCellsThatsAreInsideArray");


Последний раз редактировалось ZackMercury; 14.08.2013 в 13:22.
Старый 14.08.2013, 12:27
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Один ли это и тот же обьект?
Да, если это не примитивный тип данных типа int или Boolean, которые передаются по значениею, а не по ссылке.
Цитата:
Можно ли изменить имя переменной, обращаясь к ячейке массива?
Нельзя. Таким образом изменится свойство name, но не имя переменной которое пишется в редакторе. К слову, после компиляции имя переменной вообще нельзя поменять никак. Да и не нужно это, так как используется оно только для получения ссылки на объект, а ее с таким же успехом хранит и массив.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Да, если это не примитивный тип данных типа int или Boolean, которые передаются по значениею, а не по ссылке.

Нельзя. Таким образом изменится свойство name, но не имя переменной которое пишется в редакторе. К слову, после компиляции имя переменной вообще нельзя поменять никак. Да и не нужно это, так как используется оно только для получения ссылки на объект, а ее с таким же успехом хранит и массив.
Тогда основной вопрос:

Как динамически задать новой переменной имя? Тоесть, например, указать ее имя в цикле + I?

Код AS3:
for(var i:int  = 0; i < 3; i++)
{
 
      var ["name"+i]:String;
}
 
name0 = "hello";
name1 = "bye";
name2 = "nm";

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
это не проканает для нединамических классов..используйте хеш для своих целей..тот же массив вам подойдет

Код AS3:
var mc:MovieClip;
var i:uint;
var len:uint = 3;
var hash:Array = [];
for(i = 0; i< len; i++){
mc = new MovieClip();
mc.name = "name" + String(i);
addChild(mc);
hash.push(mc);
}
хотя он вам тут и не нужен...ссылку на дисплейный объект можно получить и по его имени , если он в дисплей листе
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 14.08.2013, 12:48
filepark вне форума Посмотреть профиль Отправить личное сообщение для filepark Найти все сообщения от filepark
  № 5  
Ответить с цитированием
filepark

Регистрация: Jul 2009
Сообщений: 77
Добавлю к первому ответу, String также является примитивным типом, т.е. в данном случае будет передано только значение, а не ссылка на объект.
Кроме того, экземпляры класса String не имеют свойства name и его вызов приведёт к ошибке.
И на один объект могут ссылаться несколько переменных.

Старый 14.08.2013, 13:17
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 6  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Цитата:
Можно ли изменить имя переменной, обращаясь к ячейке массива?
Какой переменной? У вас массив со строками

Старый 14.08.2013, 13:18
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 7  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от filepark Посмотреть сообщение
Добавлю к первому ответу, String также является примитивным типом, т.е. в данном случае будет передано только значение, а не ссылка на объект.
Кроме того, экземпляры класса String не имеют свойства name и его вызов приведёт к ошибке.
И на один объект могут ссылаться несколько переменных.
Я использовал пример, как бы если бы я хотел поменять имя, а не компилящийся код.

Добавлено через 1 минуту
Цитата:
Сообщение от KumoKairo Посмотреть сообщение
Какой переменной? У вас массив со строками
Это я опечатался спросонья. Сейчас поправлю.

Старый 14.08.2013, 15:08
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
Это я опечатался спросонья. Сейчас поправлю.
Там по-прежнему ошибка. Нет у String свойства name

Старый 14.08.2013, 23:20
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 9  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
Как динамически задать новой переменной имя?
Обычно, с таких вопросов начинается изучение ООП

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

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

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


 


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


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