我有一个奇怪的问题,我不知道为什么会这样。
我有一个名为wellcomeMenu
的movieClip。它导出为AS,名称为WellcomeMenu
,在文档类中我执行此操作:
public var _welcome:WellcomeMenu = new WellcomeMenu();
public function MainTest()
{
_welcome.x = stage.stageWidth * 0.5
_welcome.y = stage.y
addChild(_welcome);
}
所有简单的东西。然后我进入WellcomeMenu
movieClip并创建一个名为Box
的形状,然后我将其设为movieClip,并将其实例名称命名为{{1} }。
总结:我动态调用specialItem
动画片段,其中包含另一个实例名称为wellcomeMenu
的movieClip。然后我编译并得到这个错误:
specialItem
我做错了什么?
当我删除其实例名称时,它显示得很好,但我无法操纵ReferenceError: Error #1056: Cannot create property specialItem on WellcomeMenu.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at WellcomeMenu()
at MainTest()
中的动画片段。
答案 0 :(得分:2)
我认为问题出在specialItem
类的WellcomeMenu
属性中(顺便说一下,如果是英语的话,你可能会有额外的 l )。如果环境无法创建属性,则可能已存在,但权限错误。
如果您手动声明specialItem
,请确保它是公开的而不是私有的(public Sprite specialItem
),否则环境将无权设置其值。
另一个可能的问题是您手动声明了specialItem
并仍然启用了“自动声明实例”,环境可能会尝试重新声明该属性并失败。因此,要么删除手动声明,要么禁用该选项。
答案 1 :(得分:0)
如果将一种类型的对象分配给另一种类型,则会发生错误。
var square:Square = new Square();
square.row = 9; //OK, There is a row property in the Square class
var block:Block = new Block();
square = block; //this is not a compiler error, but probably a mistake
square.row = 0; //error if there is no row property on Block