在审查Kineticjs docs之后,我提出了以下内容


Kinetic.Node-节点是可以转换,分层并具有绑定事件的实体。
Kinetic.Shape(节点)-形状是基本对象,例如矩形,圆形,文本,直线等。
Kinetic.Container(节点)-容器用于包含节点或其他容器
Kinetic.Stage(容器(节点))-舞台用于包含多个层add(Layer)
Kinetic.Layer(Container(Node))-图层绑定到其自己的画布元素,并用于包含组或形状add(Node)
Kinetic.Group(容器(节点))-组用于包含形状或其他组。 add(Node)
Kinetic.BaseLayer(Container(Node))-???
Kinetic.FastLayer(Container(Node))-用于不需要用户交互的图层(感谢markE更新)
Kinetic.Collection(Array)-此类与Kinetic.Container#get结合使用


BaseLayer和“ FastLayer”到底是用来做什么的?在文档中,FastLayerLayer的描述完全相同,而BaseLayer只是说它是构造函数。

commit comments之一中,可以推断出FastLayer不必删除hit canvas ...我猜这是因为它没有一个,因此速度更快?

对于这两个类的作用以及如何有效使用它们的一些澄清将不胜感激。

编辑:更新了问题以反映markE的输入,有人对BaseLayer有见识吗?

最佳答案

注意:截至本文发布时,快速层仅在几天前才引入。但是据我了解...

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

KineticJS文档说:


  如果不需要节点嵌套,鼠标和触摸交互或事件
  发布/订阅,您应该使用FastLayer而不是Layer来创建您的
  层。它的渲染速度比普通图层快2倍。


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


不需要用户交互的静态背景层。
一个静态层,完全可以通过JS代码进行操纵和绘制,而无需用户交互。


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

普通图层还具有一个支持的屏幕外画布,该画布支持命中测试和拖动。

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

话虽如此...我需要自己研究这个新工具。 ;-)

关于javascript - Kineticjs类层次结构澄清,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22754087/

10-11 12:23