问题标签 [requestanimationframe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何使用 requestAnimationFrame?
我是动画新手,但我最近使用setTimeout
. FPS 太低,所以我找到了使用的解决方案requestAnimationFrame
,在此链接中进行了描述。
到目前为止,我的代码是:
这在第一帧期间停止。我在函数requestAnimFrame(animloop);
中有一个回调chopElement
函数。
此外,是否有更详尽的使用此 API 的指南?
google-chrome - 为什么在画布上绘制动画 gif 仅在重新选择选项卡后才会更新?
我想在画布上显示一个动画 gif,并应用了一些转换。为了进行测试,我目前只是尝试在画布上显示动画 gif,因此它本质上等同于将 gif 显示为常规<img>
标签。
我正在使用 Chrome 和webkitRequestAnimationFrame
. 在每个请求帧上,我都会绘制图像。当 gif 帧发生变化时,这应该反映在画布上。这仅部分有效:
- 仅仅看画布并不能让它更新。相反,开始绘制一个静止的帧。
- 重新选择选项卡(即选择另一个选项卡并再次选择画布选项卡)确实会将其更新为新框架,但之后它会再次冻结。
这是我设置的小提琴:http: //jsfiddle.net/eGjak/93/。
如何在画布上绘制动画 gif并使其实际动画化?
javascript - 供应商前缀“requestAnimationFrame”实现之间有什么区别?
编辑:这个问题现在只具有历史意义:
似乎已经删除了供应商前缀和特定于供应商的行为。
如果您愿意,请随意询问有关如何模拟旧的供应商特定行为的问题。
Chrome、Firefox、Internet Explorer 和 Opera 可能requestAnimationFrame
分别具有不同的功能:
webkitRequestAnimationFrame
mozRequestAnimationFrame
msRequestAnimationFrame
oRequestAnimationFrame
该规范非常清楚它们应该共享哪些行为,但是有人对它们的不同之处有权威的回答吗?
编辑:暂时,我接受我自己的答案。我仍然对 IE 10 的实现细节感兴趣,如果 Opera 实现它,Opera 的;如果有任何重大差异,我会更新问题。
javascript - 为什么 requestAnimationFrame 函数接受一个元素作为参数?
我只是想了解为什么地狱window.requestAnimationFrame
接受第二个参数作为元素,这背后的原因是什么?
我很想知道这个函数的底层执行......
jquery - 为什么 jQuery 不使用 requestAnimationFrame?
有些浏览器支持requestAnimationFrame
,为什么不使用呢?毕竟从 Google Chrome 10 开始就支持了。尽管如此,jQuery似乎并没有使用它。我发现了一个关于它的错误报告,但没有给出真正的解释?不过,我确信 jQuery 人有他们的理由。
他们为什么不使用这个很棒的 API?
javascript - 想要控制动画的 FPS 是否是继续使用 setTimeout 而不是 requestAnimationFrame 的好理由?
我想知道是否应该将游戏切换到 requestAnimationFrame。如果还有理由再这样做,正如我所读到的,当您在主要浏览器中切换选项卡时,setTimeout() 现在也会暂停。
无论如何,假设我想控制动画的 FPS。
目前我可以这样做:
k.settings.engine.fps
想要的fps在哪里。
如果我这样做requestAnimationFrame
,我就失去了这种可能性,它只会给我它所能给的一切:
我看到有人建议将 requestAnimFrame 放在另一个循环中:
所以......我应该怎么做?保持原状?
requestAnimationFrame 的确切好处是什么,现在 setTimeout 在切换选项卡时也会暂停?
javascript - 使用 requestAnimationFrame 在 Canvas 中计算 FPS
如何计算画布游戏应用程序的 FPS?我看过一些例子,但没有一个使用 requestAnimationFrame,我不确定如何在那里应用他们的解决方案。这是我的代码:
顺便说一句,我可以添加任何库来监督性能吗?
javascript - 为什么在这行代码中乘以 0.002:new Date().getTime() * 0.002;
在下面的代码中乘以 0.002 有什么特殊用途吗?
这段代码摘自这里。我还提供了下面的整个代码:
javascript - 在声明时立即调用 Javascript 匿名函数,不起作用,稍后再调用它
[answered]
我正在为 html5 游戏测试浏览器的 fps。
我有这个代码:
它在 Chrome 上给出以下错误:
Uncaught Error: TYPE_MISMATCH_ERR: DOM Exception 17
在第 27 行:requestAnimationFrame( step );
W3 说这个错误是:If the type of an object is incompatible with the expected type of the parameter associated to the object.
但我实际上并没有与 DOM 交互,除了window
但是,如果我删除分配给的匿名函数的调用括号,step
而只是声明该函数并在新行上放置:
step();
有用。
为什么是这样?
两者不应该一样吗?
javascript - setTimeOut 产生 233 fps 而 requestAnimationFrame 产生 61
我在 Chrome 上做了一些测试并requestAnimationFrame
产生了 61 fps,而setTimeOut( callback, 0 )
产生了 233 fps。
如果一个人想要超过 61 fps(我不确定这是为了什么)但是使用 setTimeOut 渲染并使用 requestAnimationFrame 来检测窗口何时失去焦点然后停止超时直到焦点不是更好回报?
还有一个附带的问题:除了 requestAnimationFrame 不调用回调之外,还有其他方法可以检测窗口何时失去焦点?