文章详情页
javascript - requestAnimationFrame如何控制帧速?
浏览:315日期:2022-12-11 15:11:44
问题描述
想在canvas里实现动画,动画是每帧都画在Sprite上连成一张图的,试过用setTimeout实现动画,发现会跳帧,但是requestAnimationFrame无法控制帧速,我希望1s画7帧该怎么办?
问题解答
回答1:requestAnimationFrame就是在浏览器下一帧渲染时调用的,所以可以认为requestAnimationFrame的调用速率就是浏览器的刷新速率,一般来说是60帧
但是requestAnimationFrame调用callback的时候会传入一个时间戳参数,可以根据这个参数来进行判断从而处理你实际需要的帧速
比如要1秒7帧的话可以这样写
let step = (timestamp, elapsed) => { if (elapsed > 1000 / 7) {//TO DO SOMETHINGelapsed = 0 }window.requestAnimationFrame(_timestamp => step(_timestamp, elapsed + _timestamp - timestamp) )}window.requestAnimationFrame(timestamp => step(timestamp, 0))回答2:
貌似不可控,浏览器自己计算的
回答3:1s7帧这种刷新速率...本来就是'跳帧'的效果...
标签:
JavaScript
相关文章:
1. javascript - nginx 反向代理 js跨域问题?2. css3 - img垂直水平居中问题3. javascript - sublime已经安装了babel插件和sublimelinter-jshint为什么还是显示es6语法错误?4. html5 - 为什么浏览器可以显示HTML文档中未被定义的标签?5. javascript - 图片能在网站显示,但控制台仍旧报错403 (Forbidden)6. 主从复制 - MySQL 主从延迟 300s 以上,求大神解答7. 请教使用PDO连接MSSQL数据库插入是乱码问题?8. javascript - 百度地图一开始设置了中心点,怎么通过按钮在调转到对应的中心点????9. mysql - 在PHPMyadmin上乱捣鼓后出现 了 - #2002 - — 服务器没有响应(或本地服务器的套接字没有正确设置)。10. 关于设计mysql中一个字段自增的函数。
排行榜

网公网安备