在屏幕外的画布上没有调用Paper.js onFrame

时间:2013-12-25 13:03:22

标签: javascript html5 canvas paperjs

一旦我的画布离开屏幕,就不会调用onFrame事件处理程序(当我向屏幕外部设置动画时,处理程序会在画布位于屏幕外时停止调用)。

有没有办法继续调用事件处理程序,即使画面外的画布还是没有显示?

我想将它渲染为three.js纹理。

我在使用setInterval()的计时器中使用paper.view.draw()解决了我的问题,但还有另一个合适的解决方案吗?

2 个答案:

答案 0 :(得分:4)

这是我们为了保持CPU负载下降而实施的优化的一部分。您可以通过在画布上设置此属性来关闭此行为:keepalive =“true”或:data-paper-keepalive =“true”

答案 1 :(得分:1)

当视图超出浏览器的可视区域时,所有onFrame回调都会暂停。处理此问题的代码位于handleCallbacks()的{​​{1}}函数中。您可以在那里设置自己的覆盖,就像DomEvent.requestAnimationFrame canvas属性覆盖暂停背景动画一样。

但是,我的猜测是,像你一样设置keepalive计时器可能是实现你想要的最简洁的方法。