【问题标题】:ActionScript AddChild to Stage from Class从类到舞台的 ActionScript AddChild
【发布时间】:2011-09-05 19:09:44
【问题描述】:

我正在尝试通过addChild() 方法将对象添加到我的主舞台。通常,在 FLA 内部工作时,使用 addChild(myObject) 就可以了。但是,它在外部 AS 类中不起作用。

我发现的所有其他教程都向我展示了如何做这样的事情,这不是我需要的:

var myMovieClip:MovieClip = new MovieClip();
myMovieClip.addChild(myObject); // Works great, but not what I need

有人可以告诉我如何通过外部 AS 类将对象添加到我的主舞台

感谢您的宝贵时间。

【问题讨论】:

    标签: php actionscript-3 oop class addchild


    【解决方案1】:

    如果这是您的文档类或具有有效阶段引用的类,您可以使用:

    stage.addChild(myObject);
    

    编辑 - 添加示例。

    这是一个扩展 EventDispatcher 并传递“阶段”参数的示例类。

    首先,类:

    package {
    
        import flash.display.MovieClip;
        import flash.display.Stage;
        import flash.events.EventDispatcher;
    
        public class MyClass extends EventDispatcher {
    
            private var _stage:Stage;
    
            public function MyClass(stage:Stage) {
                _stage = stage;
    
                var mc:MovieClip = new MovieClip();
                _stage.addChild(mc);
            }
        }
    }
    

    以及用法(假设这是来自引用“stage”的类):

    var obj:MyClass = new MyClass(null, this.stage);
    

    【讨论】:

    • 嗯...这似乎有点难做,因为这个类已经扩展了 EventDispatcher,我真的很想避免实现它,因为我需要扩展 MovieClip。还有其他解决方法吗?
    • 你的课程在扩展什么?你遇到了什么错误?如果您的类的实例已添加到显示列表中,您应该能够像上面提到的那样访问阶段......它不需要是文档类。
    • 是的,我的课程扩展了 EventDispatcher。我对 AS3 比较陌生,那么,“添加到显示列表”是什么意思?
    • EventDispatcher 类没有对舞台的引用,因此您需要将一个引用传递给它...通过在构造函数中设置公共变量或参数。然后,当你实例化你的类时,你可以传入阶段引用。
    • 我认为最好将有关传递阶段引用的信息直接添加到答案中。
    【解决方案2】:

    您是否已经尝试以下方法?

    stage.addChild(myObject)
    

    【讨论】:

      【解决方案3】:

      Corey 的方法有效。您不需要像他在示例中那样扩展 EventDispatcher。

      在他的例子中重要的是:

      private var _stage:Stage;
      public function MyClass(stage:Stage) {
      _stage = stage;
      
      var mc:MovieClip = new MovieClip();
       _stage.addChild(mc);
      }
      

      注意他如何使用 _stage 变量来引用它。

      【讨论】:

        猜你喜欢
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2017-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-21
        • 1970-01-01
        相关资源
        最近更新 更多