0

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

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

多谢你们。

4

2 回答 2

1

我为此做了一个工作。

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

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

于 2013-07-29T10:01:03.033 回答
0

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

当然,您可能需要在此基础上有所帮助,但我希望这会有所帮助。

于 2018-04-28T13:14:00.813 回答