在审查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”到底是用来做什么的?在文档中,FastLayer
与Layer
的描述完全相同,而BaseLayer
只是说它是构造函数。
在commit comments之一中,可以推断出FastLayer
不必删除hit canvas
...我猜这是因为它没有一个,因此速度更快?
对于这两个类的作用以及如何有效使用它们的一些澄清将不胜感激。
编辑:更新了问题以反映markE的输入,有人对BaseLayer
有见识吗?
最佳答案
注意:截至本文发布时,快速层仅在几天前才引入。但是据我了解...
新的快速层是旧层,但事件已关闭。
KineticJS文档说:
如果不需要节点嵌套,鼠标和触摸交互或事件
发布/订阅,您应该使用FastLayer而不是Layer来创建您的
层。它的渲染速度比普通图层快2倍。
快速层用于不需要用户交互的层:
不需要用户交互的静态背景层。
一个静态层,完全可以通过JS代码进行操纵和绘制,而无需用户交互。
快速绘制图层的速度更快,因为没有与事件相关的开销。
普通图层还具有一个支持的屏幕外画布,该画布支持命中测试和拖动。
我怀疑快速层也没有此开销,因为命中测试和拖动与事件相关。
话虽如此...我需要自己研究这个新工具。 ;-)
关于javascript - Kineticjs类层次结构澄清,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22754087/