MovieClip(mcName).play();
MovieClip(mcName).addEventListener(??????, myStopFunction);
或者你对游戏结束的了解有多么不同?
MovieClip是一个外部文件,并根据需要加载到swf中。
答案 0 :(得分:3)
使用MovieClip所有的两个属性:
totalFrames - currentFrame
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/MovieClip.html#currentFrame
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/MovieClip.html#totalFrames
答案 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)
仅检查currentFrame
和totalFrames
对于具有多个场景的MovieClip是不够的。您还必须检查它是否在最后一个场景。
function isAtLastFrame(mc:MovieClip):Boolean
{
return currentScene.name == mc.scenes[mc.scenes.length - 1].name && currentFrame == currentScene.numFrames;
}