Что вызывает ошибку Flash # 2012 (не может создать экземпляр класса)?
Я новичок в ActionScript 3 и столкнулся с проблемой:
Используя Flex Builder 3, у меня есть проект с несколькими простыми классами. Если код класса A создает экземпляр объекта класса B (класс B находится в собственном исходном файле), тогда код компилируется отлично, но я получаю следующую ошибку времени выполнения:
ArgumentError: Ошибка # 2012: B-класс не может быть создан.
Может кто-нибудь объяснить, что я делаю неправильно?
Обновление: Пожалуйста, см. мой собственный ответ ниже (я не мог проголосовать за него сверху, так как я еще не зарегистрирован).
Ответы
Ответ 1
Наконец я понял, что не так: класс B был подклассом из DisplayObject, который я теперь вижу, является абстрактным классом. Класс B не реализовал абстрактные элементы, поэтому ошибка. Я, скорее всего, изменю класс B на подкласс из Sprite.
Это похоже на проблему, которая должна быть уловлена компилятором. Означает ли факт, что это не значит, что реализация абстрактных членов может подождать до времени выполнения? Даже если это так, было бы неплохо хотя бы получить предупреждение о компиляторе.
Спасибо за ответы, надеюсь, они помогут другим, которые сталкиваются с ошибкой 2012 года.
Ответ 2
Это обычно означает, что информация о классе не была включена в SWF.
Убедитесь, что вы импортируете класс и что там есть ссылка на него (поэтому компилятор включит его в SWF).
btw, вот коды ошибок во время выполнения:
http://livedocs.adobe.com/flex/201/langref/runtimeErrors.html
(не так много полезной информации)
микрофонные камеры
[email protected]
Ответ 3
Стоит отметить, что если вы включаете классы, которые кто-то еще создал, и они использовали Flash CS3, и вы используете Flex, или наоборот, что основные библиотеки каждого из них разные, а некоторые вещи не включены в оба, Проверьте два справочных документа:
CS3: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/
Flex: http://livedocs.adobe.com/flex/2/langref/