search
开发文档
开发文档/小游戏开发/API/渲染/帧率
帧率更新时间:2025-12-24 18:13:02

基础信息说明

功能概述:提供修改渲染帧率的能力,并通过 requestAnimationFrame / cancelAnimationFrame 管理逐帧回调。

项目说明
版本要求
前提条件
使用限制
相关教程

方法说明

方法名签名同步/异步说明
setPreferredFramesPerSecondqg.setPreferredFramesPerSecond(Number fps) : void同步可以修改渲染帧率。默认渲染帧率为 60 帧每秒。修改后,requestAnimationFrame 的回调频率会发生改变
cancelAnimationFramecancelAnimationFrame(Number requestID) : void同步取消由 requestAnimationFrame 添加到计划中的动画帧请求
requestAnimationFrame
requestAnimationFrame(Function callback) : void同步下一次重绘之前,调用用户提供的回调函数,返回请求 ID

参数说明

qg.setPreferredFramesPerSecond(Number fps)

属性名类型默认值(如有)必填说明
fpsNumber -必须,帧率(帧/秒),默认渲染帧率为 60 帧每秒,有效范围 1 ~ 60;用于控制 requestAnimationFrame 触发间隔

行为说明:

  1. 可以修改渲染帧率。默认渲染帧率为 60 帧每秒。修改后,requestAnimationFrame 的回调频率会发生改变。
  2. 可多次调用,后一次设置会覆盖前一次生效的帧率。
  3. 超出 1 ~ 60 的帧率值或非法值(如 fps <= 0 或非数字)属于未定义行为,不建议使用

cancelAnimationFrame(Number requestID)

属性名类型默认值(如有)必填说明
requestIDNumber -先前调用 requestAnimationFrame() 方法时返回的 ID

requestAnimationFrame(Function callback)

属性名类型默认值(如有)必填说明
callbackFunction -下一次重绘的回调函数,无入参

返回值:Number,用于标识当前这次注册,可传给 cancelAnimationFrame 用于取消。

返回值说明

  • requestAnimationFrame:返回 Number 类型的请求 ID

回调结果说明

回调/事件触发时机回调参数说明
requestAnimationFrame 回调在下次进行重绘时执行(受 fps 设置影响)单次触发;通常在回调内再次注册形成动画循环
  • 当通过 setPreferredFramesPerSecond(fps) 调整帧率后,后续通过 requestAnimationFrame 注册的回调会按新的间隔触发
  • cancelAnimationFrame(requestID) 被调用后,对应 ID 的回调不再被触发

示例代码

const start = Date.now();

let myReq;

function step(timestamp) {
const progress = timestamp - start;
d.style.left = `${Math.min(progress / 10, 200)}px`;
if (progress < 2000) {
// 在每次调用 requestAnimationFrame 时,注意更新 requestId
myReq = requestAnimationFrame(step);
}
}
// 请求动画帧
myReq = requestAnimationFrame(step);
// 设置渲染帧率
qg.setPreferredFramesPerSecond(60);
// 取消操作使用的是最后一个 requestId上
cancelAnimationFrame(myReq);

注意事项

  • setPreferredFramesPerSecond 通过 qg 对象调用;requestAnimationFrame 和 cancelAnimationFrame 是全局函数,直接调用即可(无需 qg. 前缀)
  • 在未调用 setPreferredFramesPerSecond 时,默认渲染帧率为 60 帧每秒。调用 setPreferredFramesPerSecond(fps) 后,新的 requestAnimationFrame 会按设置的 fps 触发,即在下次进行重绘时执行
上一篇:画布
下一篇:字体
文档内容是否有帮助?
有帮助
无帮助