我怎么知道MovieClip什么时候放在舞台上才能完成游戏?

时间:2010-11-08 05:27:19

标签: flash actionscript-3 movieclip

MovieClip(mcName).play();
MovieClip(mcName).addEventListener(??????, myStopFunction);

或者你对游戏结束的了解有多么不同?

MovieClip是一个外部文件,并根据需要加载到swf中。

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

当我有自定义动画并希望知道何时完成时,我用来从动画的最后一帧调度自定义事件。通常会有一个Event.COMPLETE。

在myAnimation MovieClip的最后一帧中,我做了:

this.dispatchEvent(new Event(Event.COMPLETE));
stop();

然后在主代码中我监听添加监听器到evnet:

myAnimation.addEventListener(Event.COMPLETE, animationEndHandler);

答案 2 :(得分:1)

几乎像@ daniel.sedlacek一样,但没有时间轴代码:

var mc : MovieClip = new $TestMovieClip();          
mc.addEventListener(Event.COMPLETE, function() : void {
    trace("COMPLETE");
});
mc.addFrameScript(mc.totalFrames-1, function() : void {
    mc.dispatchEvent(new Event(Event.COMPLETE));                
});
mc.play();

答案 3 :(得分:0)

仅检查currentFrametotalFrames对于具有多个场景的MovieClip是不够的。您还必须检查它是否在最后一个场景。

function isAtLastFrame(mc:MovieClip):Boolean
{
  return currentScene.name == mc.scenes[mc.scenes.length - 1].name && currentFrame == currentScene.numFrames;
}