11

我想知道是否有人可以阐明在 Canvas 和 KineticJS 中管理图层的方式。我很难理解为什么当我 clear(); 一个图层,然后使用 draw(); 再次在该层上运行,它会返回我最初添加到该层的形状等。

例如:

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

我假设清除一个图层会完全删除它,为了重绘它,我必须设置新的形状并构建一个新图层。

如果有人也可以解释这一点,我将非常感激。

干杯,凯厄斯

4

3 回答 3

10

老实说,这个文档并不被认为是超级冗长的,但正如你在这里看到的:http: //jsfiddle.net/vPGbz/2/ clear只会从舞台对象中删除图层的绘制表示。您正在寻找的remove是用于从图层中删除某些元素的方法。

像:

circleLayer.remove(circle);
于 2012-03-22T15:09:44.200 回答
7

现在,您可以这样做,layer.children = [];但我不知道这是否会产生任何不应该的副作用!

编辑:不要这样做。相反,请执行以下操作:layer.removeChildren()http://kineticjs.com/api-docs.php下找到Container

于 2012-04-29T14:47:51.533 回答
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();
        }

    });

:-)

于 2013-02-27T17:49:09.487 回答