KeyDown 上的 CreateJS Tween
CreateJS Tween on keyDown
我在 keydown 上实现 TweenJS 时遇到问题。它只补间一次,之后如果我按下键就没有另一个补间。
我目前拥有的是:
var rotate = false;
document.onkeydown = keyDown;
document.onkeyup = keyUp;
function keyDown(e) {
switch(e.keyCode) {
case 32:
if(!rotate) {
rotate = true;
var t = createjs.Tween.get(rect).to({rotation:360},450, createjs.Ease.BackInOut).call(function(){
rotate = false;
});
}
break;
}
}
正如我所说,如果我点击 space,矩形将按我想要的方式旋转,但在完成旋转后,var rotate 将按我的需要设置回 false,然后再次按下 space没有另一个旋转。
所以,我的问题是如何在单击或按下时补间某些元素?
这是因为您已经将 rect
旋转到 360,因此再次旋转它没有任何作用(它已经到达目标)。
一个简单的解决方案是在主旋转之前或之后插入一个零持续时间的 to()
调用,这会重置旋转值,以便可以再次补间。
createjs.Tween.get(rect)
.to({rotation:0}) // THIS ONE
.to({rotation:360}, 450, createjs.Ease.BackInOut)
.call(function(){
rotate = false;
// You could also reset it here:
// rect.rotation = 0;
});
我在 keydown 上实现 TweenJS 时遇到问题。它只补间一次,之后如果我按下键就没有另一个补间。
我目前拥有的是:
var rotate = false;
document.onkeydown = keyDown;
document.onkeyup = keyUp;
function keyDown(e) {
switch(e.keyCode) {
case 32:
if(!rotate) {
rotate = true;
var t = createjs.Tween.get(rect).to({rotation:360},450, createjs.Ease.BackInOut).call(function(){
rotate = false;
});
}
break;
}
}
正如我所说,如果我点击 space,矩形将按我想要的方式旋转,但在完成旋转后,var rotate 将按我的需要设置回 false,然后再次按下 space没有另一个旋转。
所以,我的问题是如何在单击或按下时补间某些元素?
这是因为您已经将 rect
旋转到 360,因此再次旋转它没有任何作用(它已经到达目标)。
一个简单的解决方案是在主旋转之前或之后插入一个零持续时间的 to()
调用,这会重置旋转值,以便可以再次补间。
createjs.Tween.get(rect)
.to({rotation:0}) // THIS ONE
.to({rotation:360}, 450, createjs.Ease.BackInOut)
.call(function(){
rotate = false;
// You could also reset it here:
// rect.rotation = 0;
});