javascript - requestAnimationFrame感到困惑

标签 javascript animation

我开始学习这种方法requestAnimationFrame,但我发现它有点难以理解(至少对我而言是如此)。我知道setInterval / setTimeout的工作方式,但是当我尝试输入一些简单的代码进行测试时:

function message(){console.log('hello');}
requestAnimationFrame(message);


这不会在控制台中产生任何动画,而问候消息只会出现一次,但是当我在消息函数中调用requestAnmiationFrame(message)时,循环是无限的(因此它可以正常工作)。

但是以另一种方式,我可以使用setInterval / setTimeout在任何地方调用此消息函数,而不必放在消息函数内部。

所以我可以理解requestAnimationFrame()方法必须在函数内部运行吗?还是我应该说有一个函数具有默认的for循环,当在其中使用requestAnimiationFrame()方法时,它会循环自己的无穷大时间?

这个问题可能很愚蠢,但真的希望有人能启发我。

最佳答案

requestAnimationFrame实际上并没有为您渲染任何内容,它只是将浏览器的渲染循环同步到您的代码,因此您可以使用它来以编程方式在屏幕上渲染动画。

它的作用是在浏览器每次渲染框架时触发您提供的回调函数。这是一个很好的例子:制作一个javascript game

关于javascript - requestAnimationFrame感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745088/

相关文章:

javascript - 如何让文字和视频一起流动

javascript - Instagram - 如何从特定用户检索具有特定主题标签的图像

python - 一些 svg 动画在 GitHub README 中播放,其他则不播放

javascript - 是否可以在 Konva.js 中测量当前的 FPS?

html - 如何将文本设置为在动画结束时居中对齐?

ios - 在另一个 View 下动画 UIView

javascript - 如何修复 IE 9 中的文档模式重启

javascript - 不可见的 reCaptcha : can't make a working AJAX call, 得到无限循环

javascript - AngularJS:使用 ui-select 时如何选择对象字段?

javascript - 如何将Greensock集成到pixi js中