【问题标题】:as3 - how to define instance child from base class?as3 - 如何从基类定义实例子类?
【发布时间】:2016-01-07 14:37:31
【问题描述】:

我有一个movieclip parent,里面有movieclip 实例。但是,movieclip 父级扩展了一个基类,我想通过使用实例名称并从基类定义来定义其中一个子级。

例如,如果影片剪辑父级中有一个实例名称为“player”的子级。

从movieclip父类你可以定义它为

player
//or
this.player

但是从基类来说,这个方法是行不通的。我将如何从基类中定义它?

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    您可以在基类中定义player,但您必须在 AS3 设置中禁用“自动声明阶段实例”。当您选中该选项时,编译器会盲目地尝试将所有命名实例添加为链接类的属性。如果将其关闭,则可以控制这些属性的实际定义位置。出于这个原因,我总是关闭此功能。

    例子:

    class Base extends MovieClip {
        public var player:MovieClip;
    }
    
    class SymbolClass extends Base {
        // linked to a symbol that contains a 'player' instance
    }
    

    如果您选中了“自动声明阶段实例”,则不能这样做,因为SymbolClass 将尝试自动声明player,它会与Base player 声明冲突。

    另请注意,如果您的符号包含player 实例,则代码仍然有效,但player 将是null

    【讨论】:

    • 我收到此错误,1119:通过静态类型 BaseClass 的引用访问可能未定义的属性播放器。
    • 您是否在基类中将player 声明为public
    • 好吧,我没有创建变量。我只是使用了实例名称。
    猜你喜欢
    • 2012-05-26
    • 2011-02-20
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多