【问题标题】:Kineticjs class hierarchy clarificationKineticjs 类层次结构说明
【发布时间】:2014-03-31 14:30:52
【问题描述】:

在查看了Kineticjs docs之后,我想出了以下内容

  • Kinetic.Node - 节点是可以转换、分层和绑定事件的实体。
  • Kinetic.Shape (节点) - 形状是原始对象,例如矩形、圆形、文本、线条等。
  • Kinetic.Container (Node) - 容器用于包含节点或其他容器

  • Kinetic.Stage (Container(Node)) - 一个stage用于包含多个层add(Layer)

  • Kinetic.Layer (Container(Node)) - 层与它们自己的画布元素相关联,用于包含组或形状add(Node)
  • Kinetic.Group (Container(Node)) - 组用于包含形状或其他组。 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 有见解吗?

【问题讨论】:

    标签: javascript kineticjs


    【解决方案1】:

    注意:在这篇文章中,快速层是在几天前才引入的。但据我了解...

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

    KineticJS 文档说:

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

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

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

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

    普通层也有一个支持点击测试和拖动的屏幕外画布。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-08
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      相关资源
      最近更新 更多