我一直试图为所有补间实施全局暂停。如果在我的动画循环中,我只是不更新TWEEN,它会停止但是在我取消暂停后跳到它应该具有的位置,好像我从未暂停过。
TWEEN.update(时间);
要解决这个问题,我希望有一个单独的时间轴作为更新功能的参数。我尝试创建一个不同的值并单独更新它,但补间根本不会启动。
答案 0 :(得分:0)
所以这就是最终工作的东西,想知道是否有一种更优雅的方式来使用Tween的内部变量,如elapsed
。
var delta = 0;
var tmp = 0;
var recorded = false;
function animate(timestamp) {
if(paused){
if(!recorded) {
tmp=timestamp;
recorded=true;
}
}
else {
if(recorded){
delta += timestamp-tmp;
recorded=false;
}
TWEEN.update(timestamp-delta);
}
答案 1 :(得分:0)
保留TWEEN.update(time)
中的时间将暂停补间。 @Eugene是正确的。
有关更多详细信息,请参见:
https://github.com/tweenjs/tween.js/issues/341#issuecomment-447653541
答案 2 :(得分:0)
今天我写了一些小代码,可以帮助您暂停补间。
//First you need set some id for your tween animation.
var myTween = createjs.Tween.get(your_object).to({your_animation_params} ...);
//When you need to paused your tween by some event
//just get this object and set it on the same coordinates(by example),
//with time animation = 0 to have accses to use Pause method
c.Tween.get(your_object).to({x:your_object.x}, 0).pause(myTween);
//Later you can just play(unpause) it again using same trick
c.Tween.get(your_object).to({x:your_object.x}, 0).play(myTween);