Понимание очистки слоя Canvas & KineticJS - PullRequest
11 голосов
/ 22 марта 2012

Я задавался вопросом, может ли кто-нибудь пролить свет на способ управления слоями в Canvas и KineticJS.Я с трудом понимаю, почему, когда я очистить ();слой, затем используйте draw ();снова работает с этим слоем, он возвращает формы и т. д., которые я первоначально добавил к этому слою.

, например:

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

Я предположил очистить слойполностью удаляет его, и для того, чтобы перерисовать его, мне нужно было бы создать новые формы и создать новый слой.

Если бы кто-то мог объяснить это мне тоже, я был бы очень благодарен.

ПриветствияГай

Ответы [ 3 ]

10 голосов
/ 22 марта 2012

Нужно быть честным, что эта документация не считается слишком многословной, но, как вы можете видеть здесь: http://jsfiddle.net/vPGbz/2/ clear удалит только нарисованное представление слоя от объекта сцены. То, что вы ищете, это метод remove, который используется для удаления определенных элементов из слоя.

Как:

circleLayer.remove(circle);
7 голосов
/ 29 апреля 2012

На данный момент вы можете сделать layer.children = [];, но я не знаю, будут ли у этого побочные эффекты, которых не должно быть!

Редактировать: Не делайте этого,Вместо этого сделайте следующее: layer.removeChildren() найдено в http://kineticjs.com/api-docs.php в Container.

0 голосов
/ 27 февраля 2013

Я использую Kinetics 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();
        }

    });

: -)

...