如何确定AVM1Movie是否完成?

时间:2011-10-31 14:10:13

标签: actionscript-3

我正在使用Loader将AMV1Movie(使用Toon Boom Studio创建的电影)添加到我的AS3.0阶段。如何确定AMV1Movie何时播放它的最后一帧?

2 个答案:

答案 0 :(得分:1)

如果不从原始电影中发送内容,您必须轮询它的currentFrame和numFrames属性,并且只有在主时间轴是动画/节目的准确描述时才会准确。如果AVM1Movie通过代码动画或嵌套了动画片段,那么就没有什么好方法可以知道它何时“完成”。

最好的办法是打开它并在最后添加一个事件。

答案 1 :(得分:0)

我使用ForcibleLoader将AVM1Movie加载为MovieClip:

var uic: UIComponent = ....
 ...
var loader:Loader = Loader(1uic.addChild(new Loader()));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, startPlay);
var fLoader:ForcibleLoader = new ForcibleLoader(loader);
fLoader.load(new URLRequest("....swf"));

然后我检查是否(movie.currentFrame + 1> = movie.totalFrames)

我使用此功能来控制uic.click事件以停止和播放电影:

private function controlSwf(event: Event): void {
    var e: Event = event;
    var movie: MovieClip = MovieClip(Loader(event.target).content);
    if (movie.currentFrame + 1 >= movie.totalFrames) {
        movie.gotoAndPlay(1);
        play = true;
    } else if (play) {
        play = false;
        movie.stop();
    } else {
        play = true;
        movie.play();

    }
}