2012-03-22 120 views
11

我想知道是否有人可以在Canvas和KineticJS中管理圖層的方式上闡明一些情況。我掙扎着明白爲什麼當我清除();一個圖層,然後使用draw();再次在該圖層上運行,它會返回原來添加到該圖層的形狀等。瞭解Canvas和KineticJS圖層清除

例如:

http://jsfiddle.net/vPGbz/1/

我假定清除層完全移除,並且爲了重繪我將不得不設置新的形狀和構造一個新的層。

如果有人能解釋這一點,我會非常感激。

乾杯,凱厄斯

+3

抱歉的混亂!我將努力加強KineticJS文檔 – 2012-03-24 04:20:25

+0

@EricRowell如果您可以添加.removeAll函數,那將是非常棒的! – 2012-04-29 14:43:47

+0

@EricRowell nevermind,找到removeChildren() – 2012-04-29 15:32:01

回答

10

一個人是誠實的說this documentation不被認爲是尤伯杯冗長,但你可以在這裏看到:http://jsfiddle.net/vPGbz/2/clear只會從舞臺對象中刪除圖層的繪製表示。您正在尋找的是用於從圖層中刪除某些元素的remove方法。

像:

circleLayer.remove(circle); 
+0

這有助於,謝謝。該文檔相當模糊我很習慣於讀取API文檔,但是我發現很難破譯。 – 2012-03-22 15:26:54

+0

@CaiusEugene更像是不存在的.... – m90 2012-03-22 15:29:19

+0

@ m90該文檔是殘酷的。我發現唯一有用的是教程部分,但如果這不能回答您的問題,那麼您在KineticJS上運行 – puk 2012-10-13 00:21:58

7

現在,你可以做 layer.children = [];但我不知道這會不會有什麼副作用,它不應該!

編輯:不要這樣做。相反,請執行此操作:layer.removeChildren()http://kineticjs.com/api-docs.php,Container下找到。

0

我正在使用動力學4.3.1。 我做兩層,這樣我就可以添加和刪除與複選框其中之一,

你可以檢查此鏈接了:http://jsfiddle.net/lauraliparulo/uw25p/

事情是這樣的:

checkBoxItem.addEventListener('click', function() { 
     if (this.checked) { 
      load(); 
      stage.add(layer2); 
     } 

     else if (!this.checked) { 
      layer2.clear(); 
     } 

    }); 

: - )