cocos creator
动画暂停和恢复
tween
动画
// 暂停
cc.Tween.stopAll();
var tag: number = 1;
cc.Tween.stopAllByTag(tag);
var tarNd: cc.Node = xxx;
cc.Tween.stopAllByTarget(tarNd);
tarNd.pauseAllActions();
// 恢复
tarNd.resumeAllActions();
经测试:
通过 stopAll、stopAllByTag、stopAllByTarget
暂停的 tween
动画不能够,被 resumeAllAction
恢复;
通过 pauseAllActions
暂停的 tween
可以被 resumeAllActions
恢复;
结论:stop
与 pause
是有区别的,只有被 puase
暂停的 tween
动画才能够被 resume
恢复。
dragonbone
动画
let dragon: dragonBones.ArmatureDisplay = xxx;
let state: dragonBones.AnimationState = dragon.playAnimation("run", -1);
// 暂停
state.stop();
dragon.timeScale = 0;
// 恢复
state.play();
dragon.timeScale = 1;
经测试:
state.stop
与 state.play
是一组方法,分别控制 dragonbone
动画的暂停和恢复;
通过修改 dragonbone
的 timeScale
属性,来控制动画的暂停和播放也是可行的,不能够与上面两个方法配合使用达到暂停和恢复播放效果;
animation clip
动画
let animtion: cc.Animation = xxx;
let animationState: cc.AnimationState = animation.play();
// 暂停
this.animation.pause();
this.animationState.pause();
// 恢复
this.animation.resume();
this.animationState.resume();
经测试:
animation.pause
与 animation.resume
是一组方法,控制帧动画的暂停和恢复;
animationState.pause
与 animationState.resume
是一组方法,控制帧动画的暂停和恢复;
两组方法混合使用,animation.pause
暂停的动画可以用 animationState.resume
恢复,反过来 animationState.pause
与 animation.resume
不能够达到同样的效果。