跳到主要内容

动画与时序

Canvas 动画的本质是:按 vsync 把场景图光栅化到 backing store,再交给合成器requestAnimationFrame 只保证「尽量跟着刷新」,不保证 16.7ms,更不保证你的绘制能在一帧预算里结束。

文档清单

文档解决的问题
rAF 离屏与双缓冲时间基准、暂停、脏区、离屏提交、真正的双缓冲是什么
精灵图时间轴与录像按时间播帧、captureStream vs 离线编码

先立三条

  1. 动画循环只驱动 场景状态,绘制是纯函数 render(scene, t)
  2. 用 rAF 的 timestamp 做积分,不用 Date.now(),也不用相邻两帧的墙钟差去做物理(后台节流后会跳变)。
  3. 浏览器已经在合成器侧有缓冲;你再套一层离屏,是为了 场景构建与提交解耦,不是为了对抗撕裂。