监听tick事件的结束,即easeJS/createJS/moveclip类

Listen to the end of tick event easelJS/createJS/movieclip class

本文关键字:easeJS createJS moveclip tick 事件 结束 监听      更新时间:2023-09-26

我使用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事件已经订阅,它会在特定的时间段内更新画布。

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

谢谢大家。

我为此做了一个变通。

不幸的是,当动画在movieclip类中结束时,没有可以触发的事件,也就是说,没有像位图动画类中那样的onAnimationEnd

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

我需要一直这样做。我使用的方法是在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();

当然,你可能需要在此基础上再接再厉才能发挥作用,但我希望这会有所帮助。