2013-07-13 48 views

回答

12

基本區別:組是容器,而層是分隔符。

組:

  • A組爲層內部形狀的物體的容器。
  • 例如,一個組可能同時包含圓形和矩形。
  • 一個組可以被操縱,並且該組內的所有元素都被類似的操縱。
  • 例如,拖動組將同時拖動該組中包含的圓形和矩形。

層:

  • 層實際上是被堆疊頂上彼此分開畫布元素。
  • 這與圖層在Photoshop和Illustrator中的工作方式類似。
  • 可以同時看到多個圖層。
  • 如果來自不同層的對象重疊,最上面的對象將完全顯示(如z-indexing)。

組用於包含多個項目,以便可以將它們作爲一個組進行操作 - 例如將圓和線放入組中以創建「火柴人」。移動組將移動火柴人的所有部分。

圖層用於分隔不同的項目 - 如具有不變的背景圖層和發生動畫的頂層。

+6

從GitHub自述文件中引用層和組結構的節點層次結構也很有用:https://github.com/ericdrowell/KineticJS/wiki值得注意的是:「每一層都有兩個canvas渲染器,一個場景渲染器和一個熱門圖形渲染器。「在性能方面,最有可能的做法是儘可能將項目組合在一起,這很有意義。並且保持圖層的最小化,只有在有意義的時候才能創建另一個圖層,就像上面的示例一樣。 – projeqht

+0

另外,你的兩個最後的段落需要一些小編輯:) – projeqht

0

羣組簡單的元素或對象組可以通過任何方式堆積在一個層

圖層不同可以在舞臺上疊加的畫布區域。

+0

您上次的陳述不正確。一個圖層不必佔用整個舞臺,因此您可以一次顯示多個圖層。事實上,在KineticJS圖層中,AND組是透明的,不能具有'fill'屬性。這意味着所有圖層和組都是可見的,只要它們位於視口(畫布/舞臺)中,並且它們不包含在其中所包含的圖形中,就可以隨時查看。這也在@ markE的答案中提到,這是更正確和信息豐富的答案。 – projeqht

+0

@projeqht,更正。 – Starx

相關問題