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

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

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

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Изменение определения переменной

Всем привет. Возник таков вопрос. Есть пустая переменная
Код AS3:
public const key:String;
Переменная является константой, то бишь изменить её нельзя будет. Вопрос в том, как мне занести в нее значение, а после получения значения привести к const?
Например та же переменная
Код AS3:
public var key:String;
 
key = "abc";
 
//После чего, когда переменная получила свое значение, надо перевести её в const, чтобы в дальнейшем уже нельзя было заменить значение abc.
Возможно ли? Или есть альтернатива?

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

Регистрация: Jan 2006
Адрес: Москва (Нижний Новгород)
Сообщений: 229
Записей в блоге: 1
Отправить сообщение для KBAC с помощью Skype™
Сделайте сеттер, и если значение переменной отличается от дефолтного не записывайте новое в неё.
__________________
Будь проще.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Можно попробовать и по-другому, но это как-то грязновато
Код AS3:
public const key:String;
 
public function Main() 
{
	trace(key); //null
	this["key"] = "abc";
	trace(key); // abc
}

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Если не ошибаюсь, const в AS3 - это обычная переменная, которой можно присвоить значение только один раз. То есть Вам ничто не может помешать записать в нее что угодно и откуда угодно. И потом упасть во время выполнения при попытке повторного присвоения.
__________________
...вселенская грусть

Старый 17.06.2015, 22:14
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 5  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Если не ошибаюсь, const в AS3 - это обычная переменная, которой можно присвоить значение только один раз.
Я тоже в этом был почему-то уверен. Но проверил - вылазит ошибка.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Так нельзя
Код AS3:
const a:int;
a = 5;
Так можно
Код AS3:
const a:int = 5;
Константе нужно присваивать значение только на этапе объявления, или вот так, как предложил samana, но это уже хак:
Код AS3:
this["a"] = 5;
__________________
There is no thing in this world that is not simple.

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

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

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


 


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


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