【发布时间】:2013-12-19 07:50:42
【问题描述】:
我在 vanilla JS 中制作了我的精灵表动画,方法是在固定的 FPS 上移动背景位置,使用 requestAnimationFrame 和 setTimeout 设置帧速率。
最终,我想使用缓动曲线(例如 QuadInOut)或自定义曲线为其设置动画。我看过的大多数框架都将缓动内置到它们的补间函数中,而不是用于为精灵表设置动画。
谁能推荐一个可能有帮助的 JS 框架? GSAP 还是 Enchant?或者解释一下通过缓动曲线更新 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();
【问题讨论】:
标签: javascript animation sprite easing