2014-02-08 40 views
2

上创建属性***我有一个奇怪的问题,我不知道为什么会发生这种情况。错误#1056:无法在***

我与wellcomeMenu名称的动画片段。它输出为AS与WellcomeMenu的名称,并在文档类我这样做:

public var _welcome:WellcomeMenu = new WellcomeMenu(); 

    public function MainTest() 
    { 
     _welcome.x = stage.stageWidth * 0.5 
     _welcome.y = stage.y 
     addChild(_welcome); 

    } 

所有简单的东西。然后我进入WellcomeMenu的动画片段,使形状名为Box,然后我让一个影片剪辑过,并给其实例名称名称specialItem

总结:我动态地调用一个wellcomeMenu movieclip,它包含另一个实例名称为specialItem的movieClip。然后,我编译和得到这个错误:

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() 

我究竟做错了什么?

当我删除其实例名称,它显示就好了,但我不能操纵WellcomeMenu内的影片剪辑。

+0

尝试使用不同的实例名称。此外,首先获取阶段实例,然后继续。 –

+1

好吧,我发现这一点,并使其工作 http://stackoverflow.com/questions/1734169/flash-as3-referenceerror-error-1056-cannot-create-property 但在此之前,我自由地做到这一点,没有检查**自动删除阶段实例**,或至少我认为我做了什么?(没有注意到这一点)。有人能解释我发生了什么事吗? – GregorII

+0

我试着用很多不同的实例名称...什么都没有改变,你是什么意思“获得舞台实例,然后继续” – GregorII

回答

2

我认为这个问题是在WellcomeMenuspecialItem属性(顺便说一下,你可能有一个额外的在那里,如果是英语)。如果环境未能创建该属性,则该环境可能已经存在,但具有错误的权限。

如果您手动声明specialItem,请确保它是公开的而非私人的(public Sprite specialItem),否则环境将无权设置其值。

另一个可能的问题是,您手动声明specialItem仍然启用了“自动例如申报”,环境可能会尝试重新声明属性和失败。因此,要么删除手动声明或禁用该选项。如果您分配一个类型的对象到另一个可能发生

+0

好几次尝试后,我做了一些设法解决它,但你从你现在我知道我做对了:D – GregorII

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