从 Class 函数中停止主时间线

Stop the main timeline from within a Class function

我需要使用 class 中的函数在第一帧停止电影,我知道我可以使用 stop();或 this.stop();但是如何从 class 函数中停止主时间线?

package {

  public class myApplication {

    public function myApplication(stageRoot:Stage) {
       stop(); // this doesn't work
       this.stop(); // this doesn't work either
    }

  }

}

您可以使用 root 关键字从任何显示对象(在显示列表中)访问主时间轴:

MovieClip(root).stop();

如果您的 class 不在显示列表中(看起来是您的情况),那么您需要传递对显示列表中内容的引用。我看到你正在传递阶段参考,所以你可以使用它:

MovieClip(stage.getChildAt(0)).stop();

主时间轴(除非您手动将其他内容添加到舞台位置 0)将是 stage 的第一个子时间轴。

因此您的代码将如下所示:

public function myApplication(stageRoot:Stage) {
   MovieClip(stageRoot.getChildAt(0)).stop();
}

或者,如果根据您的评论,您只需将根时间线传递到:

public function myApplication(timelineRoot:MovieClip){
    timelineRoot.stop();

    //stage can be had by doing:  timelineRoot.stage
}