错误#1056:无法在***上创建属性***

时间:2014-02-08 02:09:21

标签: actionscript-3

我有一个奇怪的问题,我不知道为什么会这样。

我有一个名为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() 中的动画片段。

2 个答案:

答案 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