Apache flex 什么导致Flash错误#2012(不能实例化类)?
我是ActionScript 3的新手,遇到了一个问题: 使用FlexBuilder3,我创建了一个包含几个简单类的项目。如果类A中的代码实例化了类B的对象(类B在它自己的源文件中),那么代码可以很好地编译,但我得到以下运行时错误: ArgumentError:Error#2012:B类无法实例化 有人能解释一下我做错了什么吗Apache flex 什么导致Flash错误#2012(不能实例化类)?,apache-flex,flash,actionscript-3,flexbuilder,Apache Flex,Flash,Actionscript 3,Flexbuilder,我是ActionScript 3的新手,遇到了一个问题: 使用FlexBuilder3,我创建了一个包含几个简单类的项目。如果类A中的代码实例化了类B的对象(类B在它自己的源文件中),那么代码可以很好地编译,但我得到以下运行时错误: ArgumentError:Error#2012:B类无法实例化 有人能解释一下我做错了什么吗 更新:请在下面查看我自己的答案(因为我还没有注册,所以我无法投票给排名靠前的人)。这通常意味着SWF中没有包含班级信息 确保您正在导入该类,并且在某个地方有对该类的引用(
更新:请在下面查看我自己的答案(因为我还没有注册,所以我无法投票给排名靠前的人)。这通常意味着SWF中没有包含班级信息 确保您正在导入该类,并且在某个地方有对该类的引用(因此编译器会将其包含在SWF中) 顺便说一句,以下是运行时错误代码: (虽然没有太多有用的信息) 迈克·钱伯斯
mesh@adobe.com值得注意的是,如果您包含其他人构建的类,并且他们使用Flash CS3,而您使用的是Flex,或者反之亦然,那么每个类的核心库都是不同的,有些东西不包含在两者中。请查看两份参考文件,以确保: CS3:
Flex:我终于意识到了问题所在:类B是从DisplayObject派生的,我现在看到的是一个抽象类。类B没有实现抽象成员,因此出现了错误。我可能会将B类改为Sprite的子类 这似乎是编译器应该发现的问题。这并不意味着抽象成员的实现可以等到运行时吗?即使是这样,至少得到一个编译器警告也是不错的
感谢大家的回答,希望他们能帮助其他遇到错误2012的人。编译器无法捕捉到它,因为没有关键字摘要可供编译器使用。它是通过抛出来强制执行的,因此是错误的。