聆听tick事件画架结束时的画架,创建JS / movieclip类

时间:2013-07-27 20:38:31

标签: javascript html html5 flash createjs

我使用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事件是订阅的,它会在每个特定的持续时间内更新画布。

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

谢谢你们。

2 个答案:

答案 0 :(得分:1)

我为此做了一个工作。

不幸的是,动画在动画片段类结束时没有可以触发的事件,即 BITMAP ANIMATION CLASS

中没有onAnimationEnd

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

答案 1 :(得分:0)

我需要一直这样做。我使用的方法是将一些代码实际添加到Flash动作面板中的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动作面板中添加代码:

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

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