2012-03-22 123 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(); 
     } 

    }); 

: - )