2014-03-31 35 views
1

审查Kineticjs docs后,我想出了以下Kineticjs类层次结构澄清

  • Kinetic.Node - 节点是可以转化的,分层实体,并已绑定的事件。
  • Kinetic.Shape(节点) - 形状是如矩形,圆形,文本,线条等
  • Kinetic.Container(节点)基本对象 - 容器用来容纳节点或其他容器

  • Kinetic.Stage(容器(节点)) - 甲阶段用于包含多个层add(Layer)

  • Kinetic.Layer(容器(节点)) - 层被绑定到他们自己的画布元件和用于包含基团或形状add(Node)
  • Kinetic.Group(容器(节点)) - 组用于包含形状或其他组。 (容器(节点)) - ???
  • Kinetic.FastLayer(容器(节点)) - 用于不需要用户交互(更新感谢MARKE)

  • Kinetic.Collection层(阵列) - 这个类与Kinetic.Container#配合使用得到

什么是BaseLayer和“发stLayer'用于吗?在文档FastLayer中有与LayerBaseLayer完全相同的描述,只是说它是构造函数。

commit comments其中之一推断FastLayer不必删除hit canvas ......我猜这是因为它没有一个,从而使其更快?

一些关于这两个类做什么,以及如何有效地使用它们的澄清将不胜感激。

编辑:更新问题以反映markE的输入,任何人都有洞察BaseLayer

回答

5

注意:截至这篇文章快层仅在几天前被引入。但据我所知...

新的快速层是旧的层,但事件关闭。

的KineticJS文档说:

如果您不需要节点筑巢,鼠标和触摸交互,或事件 的pub/sub,你应该使用FastLayer代替层来创建 层。它比正常层渲染速度快2倍。

快速层用于不需要用户交互层:

  • 静态背景层而无需用户交互。
  • 一个静态图层,完全通过JS代码操作和绘制,无需用户交互。

绘制快速层的速度更快,因为没有与事件相关的开销。

正常层也有一个支持离屏画布,支持命中测试和拖动。

我怀疑快速层没有这种开销,因为命中测试和拖动都与事件相关。

说了这些......我需要更多的自己来研究这个新工具。 ;-)