Что вызывает ошибку 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/