从 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
}
我需要使用 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
}