13

我是 ActionScript 3 的新手,遇到了一个问题:

使用 Flex Builder 3,我创建了一个包含几个简单类的项目。如果 A 类中的代码实例化 B 类的对象(B 类在其自己的源文件中),则代码编译正常,但出现以下运行时错误:

ArgumentError:错误 #2012:无法实例化 B 类。

有人可以解释我做错了什么吗?

更新:请在下面查看我自己的答案(由于我尚未注册,我无法将其投票到顶部)。

4

3 回答 3

21

我终于意识到出了什么问题:B 类是 DisplayObject 的子类,我现在看到它是一个抽象类。B 类没有实现抽象成员,因此出现错误。我可能会将 B 类更改为 Sprite 的子类。

这似乎是编译器应该发现的问题。这并不意味着抽象成员的实现可以等到运行时吗?即使是这样,至少得到一个编译器警告会很好。

感谢大家的回答,希望他们能帮助其他遇到错误 2012 的人。

于 2008-09-16T02:58:42.993 回答
2

这通常意味着类信息不包含在 SWF 中。

确保您正在导入该类,并且在某处有对它的引用(因此编译器会将其包含在 SWF 中)。

顺便说一句,这里是运行时错误代码:

http://livedocs.adobe.com/flex/201/langref/runtimeErrors.html

(虽然没有太多有用的信息)

迈克室

网格@adobe.com

于 2008-09-16T00:44:12.537 回答
0

值得注意的是,如果您包含其他人构建的类,并且他们使用 Flash CS3 而您使用的是 Flex,或者反之亦然,那么每个类的核心库是不同的,并且有些东西不包含在两者中。查看两个参考文档以确保:

CS3: http: //livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

弹性: http: //livedocs.adobe.com/flex/2/langref/

于 2008-09-16T01:07:43.087 回答