Flash AS3-库类型强制中相同基类的对象失败
这种情况经常发生在我身上,我还没有找到一个好的解决办法。假设您有两个类,Tree(com.company.Tree)和Fruit(com.company.Fruit)。在Flash的舞台上,树有一个水果实例(class=fruit1,base class=com.company.Fruit),它的实例名是水果。一切正常,直到您复制树和水果电影剪辑以创建第二棵树,该树具有不同的水果实例(class=fruit2,base class=com.company.fruit),但第二棵树中的实例名称也是水果。这是必要的,因为树类的代码引用了“fruit”(例如,fruit.x+=20) 我明白了:Flash AS3-库类型强制中相同基类的对象失败,flash,actionscript-3,class,Flash,Actionscript 3,Class,这种情况经常发生在我身上,我还没有找到一个好的解决办法。假设您有两个类,Tree(com.company.Tree)和Fruit(com.company.Fruit)。在Flash的舞台上,树有一个水果实例(class=fruit1,base class=com.company.Fruit),它的实例名是水果。一切正常,直到您复制树和水果电影剪辑以创建第二棵树,该树具有不同的水果实例(class=fruit2,base class=com.company.fruit),但第二棵树中的实例名称也是
Warning: All instances named 'fruit' will be automatically declared as fruit1 in symbols that use fruit as their base class. In symbols that are linked to user-defined base classes, instances with the same name must be of the same type.
当然,这是:
TypeError: Error #1034: Type Coercion failed: cannot convert fruit2@4be85871 to fruit1.
您是否使用compile选项“自动声明阶段实例”?在这种情况下,您可能必须禁用该功能并添加:
public var fruit:Fruit;
给你的树课。这将为舞台上的MovieClip指定一个实例名为“fruit”的“fruit”,从而避免冲突。查看更多信息。typeoneerror的答案确实有效。Flash会将水果类型2设置为水果1,这与实际将其基础设置为水果基本相同 这是一个非常恼人的警告,但一切正常 这个解决方案非常适合我,只要取消选中该框,一切都可以
文件->发布设置->闪存->设置…您已经自动声明了阶段实例您的设置中有一些奇怪的地方:您有两个com.company.Tree的实例-它们是同一个类还是class=tree1和class=tree2?您的水果实例是在树实例中定义的,还是在舞台上并排定义的?如果你能更清楚地解释你的库和舞台设置,我可能会提供帮助。这些树有相同的基类(Tree)。水果实例位于树内,每棵树一个水果。希望有帮助。这对我来说仍然是一个大问题。既然typeoneerror文章中的链接已经失效,我想我也会引导好奇者在我自己的博客上发表一篇关于这个主题的文章。