我通过使用requestAnimationFrame和setTimeout设置帧速率,将背景位置移动到固定的FPS,让我的精灵表在vanilla JS中动画化。
最终我想用一条缓和曲线(例如QuadInOut)制作动画,或者更好的是自定义曲线。我看过的大多数框架都在其补间函数中内置了缓动,而不是为精灵谱表设置动画。
有人可以建议一个可能有帮助的JS框架吗?也许是GSAP或附魔?或者通过缓和曲线解释更新fps背后的逻辑?
此刻是我的'线性'动画:
var theSprite= $('.sprite');
var timesRun = 0;
var shift = 0;
var fps = 20;
var anim = function() {
setTimeout(function() {
shift -= 520;
theSprite.css('background-position', shift +'px 0');
timesRun += 1;
if(timesRun === 19) {
timesRun = 0;
shift = 0;
}
animAgain = requestAnimationFrame(anim);
}, 1000 / fps);
}
anim();
答案 0 :(得分:1)
Enchant.js有几种不同的精灵动画方式。如果你在这里查看 enchant.timeline 类http://wise9.github.io/enchant.js/doc/plugins/en/symbols/enchant.Timeline.html,它有一些不同的函数可以用不同的方式简化精灵。
答案 1 :(得分:0)
我认为你肯定会喜欢KineticJS。它就像一个魅力,专为你想要做的事情而设计。