如何知道动画播放结束

通过Sprite下创建一个动画,动画播放正常
但我不知道这个动画是什么时候结束,在结束时处理一些事情没有办法。
求大神们帮忙

如果是重复一次的动画,可以在最后一帧添加帧事件,如果是重复多次的动画,可以用计时器,延迟就是duration * repeatCount

暂时还没有动画播放完成的回调,以上都是我自己用的办法:joy:

最后一帧如何加事件啊?因为动画结束后,需要进入下一个游戏环节

可以通过增加帧事件来实现。操作步骤:

更多信息可以参考文档:
http://www.cocos.com/docs/creator/animation/animation-event.html

请问你是用动画编辑器创建的clip还是脚本动态创建的啊?动画编辑器就是楼上大神说的方法

我是用动画编辑器来做的~太感谢各位大神 了~

我是这样写的~但没有打印出来啊~

你的 函数所在的脚本 需要 挂载到animation组件所在的节点,还有最好用cc.log来打印,我没用过console,不知道能不能用

1赞

明白了~原来是这样~好了~感谢 ~:grin:

不客气:grin:

想知道这个问题:
如果不是用Animation实现的动画,是用cc.sequence(cc.moveBy(interval, x, y), actions);创建的动作,如何在runAction结束时执行一些操作呢?

cc.callFunc:

cc.sequence(cc.moveBy(interval, x, y), actions, cc.callFunc(this.actionsFinished, this));
1赞

官方API没有给出sequence的第三个参数,我先试一下。
http://docs.cocos.com/creator/api/zh/modules/cc.html#sequence

这边场景是连续的一串移动,如果可行我会在最后一个动作加入callback

可行,被官方API骗了。。

刚刚还试了在节点update(dt)里用 isDone来判断是否完成动作,可以实现但是丑了点。

非常感谢。

不是第三个参数的问题,而是cc.sequence可以接任意多个Action或一个Action数组。

cc.sequence(action1, action2, action3, action4, action5, cc.callFunc(...));
=
cc.sequence([action1, action2, action3, action4, action5, cc.callFunc(...)]);

一个是在制作动画的时候增加帧事件来添加脚本,但是需要脚本跟节点挂在一起,一个是用代码动态创建,ani.on(‘stop’, callback);在动画结束的时候会调用callback函数