【问题标题】:Listen to the end of tick event easelJS/createJS/movieclip class监听tick事件easelJS/createJS/movieclip类结束
【发布时间】:2013-07-27 20:38:31
【问题描述】:

我使用 Flash 创建了一个简单的动画并将其导出为 createJS 动画(HTML5)。当我浏览源代码时,我看到了

function handleComplete() {
    exportRoot = new lib.stage_01();

    stage = new createjs.Stage(canvas);
    stage.addChild(exportRoot);
    stage.update();

    createjs.Ticker.setFPS(25);
    createjs.Ticker.addEventListener("tick", stage);
}

我猜测 tick 事件已被订阅,它会在每个特定的时间段内更新画布。

我的问题是,是否可以检测动画何时结束。基本上,我需要在动画结束后调用一个方法。不,我没有为此目的使用精灵表,如果这有帮助:-)

谢谢大家。

【问题讨论】:

  • 谁能帮帮我?

标签: javascript html flash createjs


【解决方案1】:

我已经解决了这个问题。

不幸的是,当动画以movieclip 类结束时,没有可以触发的事件,即没有onAnimationEnd,如BITMAP ANIMATION CLASS

我修改了我的movieclip类以在特定帧上调用一个方法(当没有动态变化的内容时很有用,这样我就可以知道我拥有的帧数)。

【讨论】:

    【解决方案2】:

    我需要一直这样做。我使用的方法是在 Flash Actions 面板中将一些代码实际添加到 MovieClip 的时间轴中。例如,我将添加:

    this.is_playing=false;
    this.stop();
    

    并在我开始动画时将 myMovieClip.is_paying 设置为 true,然后在我的游戏更新循环中监听 myMovieClip.is_playing 是否变为 false。

    gameUpdateLoop = function(){
        if(!myMovieClip.is_playing){
            //do something
        }
    }
    myMovieClip.is_paying = true;
    myMovieClip.gotoAndPlay("jump");
    

    另一种方式... 您还可以在 Javascript 中将自己的回调添加到 MovieClip,例如:

    myMovieClip.callback = someFunction;
    myMovie.gotoAndPlay("jump");
    

    然后在 Flash MovieClip 时间轴中,在跳跃动画的最后,在 Flash Actions 面板中添加代码:

    this.callback();
    this.stop();
    

    当然,您可能需要在此基础上进行改进才能发挥作用,但我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多