I have a layer with a lot of Symbols, and I would like to hide and show that entire layer with all his elements.
to hide I do it with myLayer.remove(); but to show it there is no methods...
On their tutorial they say project.activeLayer.addChild(myObject); but it doesn't seem to work with a layer. (http://paperjs.org/tutorials/project-items/project-hierarchy/)
If someone can help me or tell me if I need to do it differently ?
Thank you very much.
When you call Layer.remove(), that Layer instance is removed from the project.layers array. To re-show the removed layer (and any objects in it), push it back onto project.layers.
var blueSquare = Path.Rectangle(new Point(0, 0), new Size (50, 50));
blueSquare.fillColor = 'blue';
var newLayer = new Layer();
newLayer.activate(); // so that redCircle will be added to newLayer
var redCircle = Path.Circle(new Point(100, 100), 50);
redCircle.fillColor = 'red';
newLayer.remove(); // this prevents the redCircle from being drawn
project.layers.push(newLayer); // now the redCircle is back
Alternatively, instead of newLayer.remove(); you can use newLayer.visible = false; or newLayer.opacity = 0; so that the newLayer is never actually removed from the project.layers array, although with those approaches selected Items still show wireframes even if the actual Items cannot be seen.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With