问题标签 [cancelanimationframe]
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 暂停和取消暂停
所以,我在弄清楚如何暂停和(最重要的是)取消暂停我的模拟时遇到了问题。当我按下播放键时,我调用了一个名为 animate() 的函数。我只调用一次,所以在animate()内部我很自然地调用requestAnimationFrame(animate)让它像往常一样循环:
请注意,我将返回归因于idAnimate,因此我可以在需要的任何地方将其用作cancelAnimationFrame(idAnimate)的参数。我的问题是,一旦我能够停止动画,我就无法将其取消暂停。我已经搜索了替代方案,例如使用诸如isPaused 之类的布尔变量,并且仅在isPaused为假时调用requestAnimationFrame,但据我所知,当isPaused 变为真时,动画循环停止并且它无法再测试它是否为真。我只调用一次animate(),所以一旦它退出循环,它就不再进入它。无论我如何暂停它(通过使isPausedtrue 或从外部调用cancelAnimationFrame(idAnimate)),我似乎无法让它回去。
我很想对此有所了解。我希望我能把自己说清楚。先感谢您!:)
javascript - cancelAnimationFrame 和 setTimeout
对于以下js代码:
由于作用域,以下代码无法停止动画:
有什么建议吗?
javascript - Recoil.js 使用recoilState 控制animationFrame 时的奇怪行为
https://codesandbox.io/s/heuristic-moon-8l3g6?file=/src/App.js
上面演示中的切换按钮将暂停/恢复计数器几次,然后它会突然停止运行并且animationFrame
永远不会停止。如果我要注释掉useRecoilState
并取消注释useState
,它会再次按预期工作。这是否与获取值时引入延迟的后坐力有关?