cocos Creatorcocos Creator
cocosCreator使用spine骨骼动画暂停、继续、重新播放动画
南锋2024-05-072024-05-07(adsbygoogle=window.adsbygoogle||[]).push({})
第一次用creator,spine好像没有提供动画暂停与恢复的api。之前用2dx的时候是通过节点的暂停和恢复方法来实现的,但是换成creator发现node的pauseAllActions()
方法并没有效果。
暂停,继续
查找了一番之后,发现sp.Skeleton
组件的api中定义了一个暂停的字段paused
,将这个字段设置为true
即可暂停动画,设置为false
继续动画。
示例代码:
代码语言:javascript复制this.sk = this.spineNode.getComponent("sp.Skeleton") as sp.Skeleton;
stop(){
this.sk.paused= true; // 暂停动画
}
play(){
this.sk.paused= false; // 继续播放
}
注意,这里的将paused
设置为false
,动画将会在暂停的地方继续往后面播放。如果我们要想重头播放动画,该方法就不适用了。
暂停,重新播放
我这里的思路是将正在进行的动画线管给清除掉,然后重新播放动画。
重新播放动画代码示例:
代码语言:javascript复制this.sk = this.spineNode.getComponent("sp.Skeleton") as sp.Skeleton;
stop(){
this.sk.clearTrack(0);// 暂停动画
}
play(){
this.sk.setAnimation(0, "animation", false); // 重新播放动画
}