所以,我在弄清楚如何暂停和(最重要的是)取消暂停我的模拟时遇到了问题。当我按下播放键时,我调用了一个名为 animate() 的函数。我只调用一次,所以在animate()内部我很自然地调用requestAnimationFrame(animate)让它像往常一样循环:
function animate() {
idAnimate = requestAnimationFrame(animate);
(...more code...)
}
请注意,我将返回归因于idAnimate,因此我可以在需要的任何地方将其用作cancelAnimationFrame(idAnimate)的参数。我的问题是,一旦我能够停止动画,我就无法将其取消暂停。我已经搜索了替代方案,例如使用诸如isPaused 之类的布尔变量,并且仅在isPaused为假时调用requestAnimationFrame,但据我所知,当isPaused 变为真时,动画循环停止并且它无法再测试它是否为真。我只调用一次animate(),所以一旦它退出循环,它就不再进入它。无论我如何暂停它(通过使isPausedtrue 或从外部调用cancelAnimationFrame(idAnimate)),我似乎无法让它回去。
我很想对此有所了解。我希望我能把自己说清楚。先感谢您!:)