小编Ste*_*ven的帖子

Canvas 的绘制速度不一致(requestAnimationFrame)

我有最简单直接的画布动画:

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.canvas.width  = 700;
ctx.canvas.height = 300;

var x = 0;

var update = function() {
  x = x + 6;
}

var draw = function() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.fillRect(x, 10, 30, 30);
}

let lastRenderTime = 0
const frameRate = 60;

function main(currentTime) {
  window.requestAnimationFrame(main)
  const secondsSinceLastRender = (currentTime - lastRenderTime) / 1000
  if (secondsSinceLastRender < 1 / frameRate) return


  lastRenderTime = currentTime

  update()
  draw()
}

window.requestAnimationFrame(main)
Run Code Online (Sandbox Code Playgroud)
<canvas id="canvas"></canvas> …
Run Code Online (Sandbox Code Playgroud)

javascript canvas requestanimationframe

1
推荐指数
1
解决办法
1105
查看次数

标签 统计

canvas ×1

javascript ×1

requestanimationframe ×1