【问题标题】:How do I know when MovieClip placed on stage to finish play?我如何知道 MovieClip 何时放置在舞台上结束播放?
【发布时间】:2011-05-06 12:13:52
【问题描述】:
MovieClip(mcName).play();
MovieClip(mcName).addEventListener(??????, myStopFunction);

或者你可以如何不同地了解游戏的结束?

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

【问题讨论】:

    标签: flash actionscript-3 movieclip


    【解决方案1】:
    【解决方案2】:

    当我有一个自定义动画并想知道何时完成时,我使用从动画的最后一帧调度一个自定义事件。通常一个 Event.COMPLETE 就可以了。

    在 myAnimation MovieClip 的最后一帧中:

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

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

    myAnimation.addEventListener(Event.COMPLETE, animationEndHandler);
    

    【讨论】:

      【解决方案3】:

      几乎像@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();
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-25
          • 1970-01-01
          • 1970-01-01
          • 2014-06-01
          • 2014-01-05
          • 1970-01-01
          相关资源
          最近更新 更多