2012-05-29 116 views
1

我有一个有很多符号的图层,我想用他的所有元素来隐藏和显示整个图层。paper.js隐藏/显示图层?

隐藏我myLayer.remove();做,但要显示它有没有方法...
在他们的教程,他们说project.activeLayer.addChild(myObject);但它似乎并没有与层工作。 (http://paperjs.org/tutorials/project-items/project-hierarchy/)

如果有人能帮助我,或告诉我,如果我需要做不同呢?

非常感谢。

回答

8

当调用Layer.remove(),该层实例从project.layers数组中删除。要重新显示已移除的图层(以及其中的任何对象),请将其重新放回到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 

另一方面,不是newLayer.remove();可以使用newLayer.visible = false;newLayer.opacity = 0;使得newLayer不会真正从project.layers数组中删除,虽然这些方法中选定的项目仍然显示线框,即使实际的项目无法看到。

+0

非常感谢您的帮助。我使用了不透明度= 0的方法,导致图层低于其他图层,所以没有打扰。 – Shadowbob