我刚刚开始了解 canvas 元素,但我相信它是双缓冲的。查看 kineticjs 的代码 Kinetic.Stage 似乎创建了两个画布(不在 DOM 中)一个 Kinetic.SceneCanvas 和一个 Kinetic.hitCanvas。当您向舞台添加一个图层时,它似乎又创建了 2 个画布,另一个 Scene 和 Hit 画布,其中一个显示在 DOM 中。为什么需要这么多重叠的画布?还是我误读了代码和/或错过了重点?
谢谢
我刚刚开始了解 canvas 元素,但我相信它是双缓冲的。查看 kineticjs 的代码 Kinetic.Stage 似乎创建了两个画布(不在 DOM 中)一个 Kinetic.SceneCanvas 和一个 Kinetic.hitCanvas。当您向舞台添加一个图层时,它似乎又创建了 2 个画布,另一个 Scene 和 Hit 画布,其中一个显示在 DOM 中。为什么需要这么多重叠的画布?还是我误读了代码和/或错过了重点?
谢谢
直接从KineticJS GitHub 自述文件中获取:
动力学阶段由用户定义的层组成。每层都有两个画布渲染器,一个场景渲染器和一个命中图渲染器。场景渲染器是你可以看到的,命中图渲染器是一个特殊的隐藏画布,用于高性能事件检测。每个层可以包含形状、形状组或其他组的组。舞台、层、组和形状是虚拟节点,类似于 HTML 页面中的 DOM 节点。
此外,在功能部分,KineticJS 功能:
通过颜色映射散列进行高性能事件检测