Javascript 为什么requestAnimationFrame的许多示例在回调之外调用requestAnimationFrame?
我在网上看到的许多RequestAnimationFrame示例都两次调用该函数:在回调内部和外部。我理解为什么我们称之为内在;但是,有什么理由我们叫它外面吗Javascript 为什么requestAnimationFrame的许多示例在回调之外调用requestAnimationFrame?,javascript,requestanimationframe,Javascript,Requestanimationframe,我在网上看到的许多RequestAnimationFrame示例都两次调用该函数:在回调内部和外部。我理解为什么我们称之为内在;但是,有什么理由我们叫它外面吗 这是在下一个动画帧对步骤的初始调用;它实质上是启动动画。如果没有它,您将拥有以下功能: let myReq; function step(timestamp) { myReq = requestAnimationFrame(step); console.log(timestamp, myReq) if(timestamp &
这是在下一个动画帧对步骤的初始调用;它实质上是启动动画。如果没有它,您将拥有以下功能:
let myReq;
function step(timestamp) {
myReq = requestAnimationFrame(step);
console.log(timestamp, myReq)
if(timestamp >= 1000) {
cancelAnimationFrame(myReq);
}
}
…在这种情况下,我们永远不会有调用方执行步骤,也永远不会调用它
或者,您可以在初始调用步骤时忽略requestAnimationFrame包装器:
但是,第一次调用步骤时,它不一定要等待第一个可用的动画帧。外部调用正在启动请求?哈!这是第一个画面!完全有道理!
let myReq;
function step(timestamp) {
myReq = requestAnimationFrame(step);
console.log(timestamp, myReq)
if(timestamp >= 1000) {
cancelAnimationFrame(myReq);
}
}
let myReq;
function step(timestamp) {
myReq = requestAnimationFrame(step); // I understand why we call it here.
console.log(timestamp, myReq)
if(timestamp >= 1000) {
cancelAnimationFrame(myReq);
}
}
myReq = step; // why invoke rAF here.