【问题标题】:When do we need to add reference to the stage from one class to another我们什么时候需要从一个类到另一个类添加对舞台的引用
【发布时间】:2012-04-28 08:23:25
【问题描述】:

我们什么时候需要像本教程中那样将阶段的引用从一个 as3 类传递到另一个类

http://asgamer.com/2009/as3-flash-games-for-beginners-firing-weapons-with-delays

他在舞台上添加了一个从子弹类到船类的参考

据我所知,当我们想在另一个类中使用某个类中的函数时需要引用,但为什么我们必须引用阶段不是整个项目的一个阶段,或者每个类都有自己的阶段阶段?

我很困惑

谢谢

【问题讨论】:

    标签: actionscript-3 flash class reference stage


    【解决方案1】:

    只有连接到舞台的对象才会显示在屏幕上。在教程中,他将激光添加到舞台显示列表中,以便它出现在屏幕上。在添加之前,无论visible 属性如何,它都不会被渲染。

    有关显示列表的更多信息,请参阅this

    【讨论】:

    • 另外,如果未完全添加,stage 及其属性将无法访问。这就是 Flashdevelop 为其项目创建init 方法的原因。
    【解决方案2】:

    @Geotarget 是正确的,但答案有点间接。

    不在显示列表中的对象实际上没有对stage 的引用。因此,例如,如果您创建了一个未添加到显示列表中的var mc:MovieClip = new MovieClip();(如addChild(mc)),那么mc.stage 将是null。 (另外,检查if(mc.stage){[...]} 也是一种验证MovieClip 是否在显示列表中的方法。)

    因此,您可以将对 stage 的引用传递给非显示列表对象,以允许它们访问诸如 stageWidth 之类的内容。

    【讨论】:

      【解决方案3】:

      是的,当您想要访问该特定类(引用所属)中存在的函数时,需要引用。这是用途之一。

      整个项目只有一个阶段。

      在您正在学习的教程中,两个类都使用了 COMMON Stage 的引用,因此它们都可以访问 Stage。 这就像给两个人一个地方的地址。这样他们两个都可以去那里。当然,提供地址并不意味着我们为每个地址建造两个地方。

      V.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-20
        • 1970-01-01
        • 2021-12-10
        • 2015-07-11
        • 1970-01-01
        • 2013-08-13
        • 1970-01-01
        相关资源
        最近更新 更多