Показать сообщение отдельно
Старый 07.01.2012, 12:25
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 2  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Дело в том что у конструктора есть статический инициализатор, он называется cinit в документации avm2 overview. Это обычная функция куда засунута инициализация статических констант в случае если они определены как результат вызова статической функции и ещё некоторые вещи. В принципе пока мы не используем этот класс он может быть не инициализирован. Возможно что разбор класса производится при инициализации класса. В обычной ситуации если не использовать класс то он и не вкомпилится. Я сделал флешку с принудительно вкомпиленными классами которые нигде не используются, и сделал
Код AS3:
trace(describeType(getDefinitionByName("TestClass")));
однако всё было описано корректно. Более извращённых ситуаций я не могу предположить. Сие тестировалось под дебаговым плеером версии 10.2. Статик инициализатор был вызван прямо после getDefinitionByName в полном соответствии с ожиданиями.
возможно этот баг относится к ранним версиям девятого плеера.
__________________
:)


Последний раз редактировалось Aquahawk; 08.01.2012 в 11:30.