一旦我的画布离开屏幕,就不会调用onFrame事件处理程序(当我向屏幕外部设置动画时,处理程序会在画布位于屏幕外时停止调用)。
有没有办法继续调用事件处理程序,即使画面外的画布还是没有显示?
我想将它渲染为three.js纹理。
我在使用setInterval()的计时器中使用paper.view.draw()解决了我的问题,但还有另一个合适的解决方案吗?
答案 0 :(得分:4)
这是我们为了保持CPU负载下降而实施的优化的一部分。您可以通过在画布上设置此属性来关闭此行为:keepalive =“true”或:data-paper-keepalive =“true”
答案 1 :(得分:1)
当视图超出浏览器的可视区域时,所有onFrame
回调都会暂停。处理此问题的代码位于handleCallbacks()
的{{1}}函数中。您可以在那里设置自己的覆盖,就像DomEvent.requestAnimationFrame
canvas属性覆盖暂停背景动画一样。
但是,我的猜测是,像你一样设置keepalive
计时器可能是实现你想要的最简洁的方法。