2

Paper.js と Node.js を使って簡単なお絵かきアプリを作っています。2 つのレイヤーがあります: - 画像を含む最下層 - 描画用の最上層。画像のあるレイヤーは、描画レイヤーの背景です。

パス上の描画を消す簡単な消しゴムツールを作りたいです。BlendMode が「destination-out」に設定されている最上層に 2 番目のパスを追加しようとしています。

drawingLayer.activate();
path = new Path();
path.strokeColor = 'black';
path.strokeWidth = 5;

if (mode == "erase") {
  path.strokeWidth = 15;
  path.blendMode = 'destination-out';
}

私の問題は、この「宛先アウト」パスが、最上層 (描画層) のすべてだけでなく、最下層 (画像) のすべても消去することです。もちろん、消しゴムで画像をそのままにしておきたいです。ページの css で背景を設定すると、消しゴム パスによって消去されません。

下のレイヤーを変更せずに、消しゴムを作成して上のレイヤーを変更する方法を知っていますか?

4

2 に答える 2

1

解決策は、次のように、消しゴム ツールを使用する直前に、消したいレイヤーをアクティブにすることです。

var firstLayer = paper.project.activeLayer; //This one is used to erase
var shapesLayer = new Layer(); // We don't want to erase on this one

基本的に、消しゴムツールを選択すると

firstLayer.activate();

次に、図形を描きたいときは、同じ方法で「shapesLayer」をアクティブにします。これにより、ツール(消去に使用されるツール)が「shapesLayer」から何かに触れるのを回避できます

于 2014-07-29T14:28:17.757 に答える