2

多くのシンボルを含むレイヤーがあり、すべての要素を含むレイヤー全体を非表示にして表示したいと思います。

非表示にするmyLayer.remove();方法はありませんが、表示する方法はありません...
彼らのチュートリアルではproject.activeLayer.addChild(myObject);、レイヤーでは機能しないようです。(http://paperjs.org/tutorials/project-items/project-hierarchy/)

誰かが私を助けてくれるか、別の方法で行う必要があるかどうか教えてくれますか?

どうもありがとうございました。

4

2 に答える 2

8

Layer.remove() を呼び出すと、その Layer インスタンスが 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

または、代わりにornewLayer.remove();を使用して newLayer が project.layers 配列から実際に削除されないようにすることもできますが、これらのアプローチでは、実際のアイテムが表示されなくても、選択されたアイテムは引き続きワイヤーフレームを表示します。newLayer.visible = false;newLayer.opacity = 0;

于 2012-07-18T02:20:50.503 に答える