有的场景不需要逐帧渲染 可以定义一个可调节的函数触发器
使用
//注册函数
tick.init(() => {
window.render();
console.log(random);
});
//开始执行
tick.run();
取消执行
tick.clear();
const tick = {
animationFrameId: 0,
script: () => {},
/**
* 间隔多少毫秒执行一次
*/
interval: 1000,
prevTime: 0,
init: (callback: () => void) => {
tick.script = callback;
},
run: () => {
tick.animationFrameId = requestAnimationFrame(tick.run);
if (performance.now() - tick.prevTime > tick.interval) {
tick.script();
tick.prevTime = performance.now();
}
},
clear: () => {
cancelAnimationFrame(tick.animationFrameId);
},
};