2012-05-29 122 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