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

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

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
По умолчанию Интересный баг as3, instantiation on non-constructor

Обнаружил сегодня интересную штуку. Если сделать в классе вот так
Код AS3:
private static var _achievements:Array = [
	new Achievement(100, 1, AchievementCondition.KILL_ZOMBIES),
	new Achievement(101, 100, AchievementCondition.KILL_ZOMBIES),
	new Achievement(102, 500, AchievementCondition.KILL_ZOMBIES),
	new Achievement(103, 1000, AchievementCondition.KILL_ZOMBIES),
	new Achievement(104, 5000, AchievementCondition.KILL_ZOMBIES),
	new Achievement(105, 10000, AchievementCondition.KILL_ZOMBIES),
	new Achievement(106, 50000, AchievementCondition.KILL_ZOMBIES),
	new Achievement(107, 100000, AchievementCondition.KILL_ZOMBIES),
	new Achievement(201, 10, AchievementCondition.KILL_BOSSES),
	new Achievement(202, 50, AchievementCondition.KILL_BOSSES),
	new Achievement(301, 10, AchievementCondition.SPEND_TIME_IN_GAME),
	new Achievement(302, 60, AchievementCondition.SPEND_TIME_IN_GAME),
	new Achievement(303, 120, AchievementCondition.SPEND_TIME_IN_GAME),
	new Achievement(304, 120, AchievementCondition.SPEND_TIME_IN_GAME),
	new Achievement(305, 300, AchievementCondition.SPEND_TIME_IN_GAME),
	new Achievement(306, 30, AchievementCondition.SPEND_TIME_IN_GAME),
	new Achievement(401, 10, AchievementCondition.COLLECT_WEAPONS),
	new Achievement(501, 10, AchievementCondition.COLLECT_KEYS),
	new Achievement(502, 50, AchievementCondition.COLLECT_KEYS),
	new Achievement(503, 100, AchievementCondition.COLLECT_KEYS),
	new Achievement(601, 5, AchievementCondition.COLLECT_ARTEFACTS),
	new Achievement(602, 50, AchievementCondition.COLLECT_ARTEFACTS),
	new Achievement(603, 100, AchievementCondition.COLLECT_ARTEFACTS),
	new Achievement(604, 500, AchievementCondition.COLLECT_ARTEFACTS),
	new Achievement(701, 2, AchievementCondition.PASS_CHAPTER),
	new Achievement(702, 10, AchievementCondition.PASS_CHAPTER),
	new Achievement(703, 20, AchievementCondition.PASS_CHAPTER)
];
А сам класс Achievement объявить в том же файле как internal, то в рантайме вывалится ошибка
Код AS3:
instantiation on non-constructor
Стало быть статики инициализируются раньше, чем internal классы. Если же Achievement вынести как отдельный класс, все работает отлично. Так же будет если переменную сделать не статической.

п.с. это не вопрос почему так происходит, а просто решил поделиться инфой)
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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