古いバージョンと最新の 1.1.13 バージョンの fabricjs を試しましたが、選択したオブジェクトのみに clipTo 関数を適用できるものはありません。オブジェクトが 1 つしかなく、それをクリップする必要がある場合は問題ありませんが、複数のオブジェクトがあり、選択したオブジェクトのみをクリップしようとすると、他のすべてのオブジェクトもクリップされます。最も奇妙な動作は、他のオブジェクトを選択する前に、選択したオブジェクトにクリップが適用されますが、他のオブジェクトを選択してクリップしようとすると、既にクリップされているすべてのオブジェクトも影響を受けることです。以下の手順で問題を解決したいです。
- object1 と object2 の 2 つのオブジェクトがあります。
- object1 を選択し、clipTo 関数を適用します。
- object1 はそれに応じてクリップされ、他の選択されていない object2 は影響を受けません。ここまではOKです。
- ここで object2 を選択し、それに clipTo 関数を適用します。ただし、この時点では、clipTo 関数は選択されていない object1 にも影響します。
次の関数を使用してオブジェクトの初期化期間中ではなく、動的に clipTo 関数を使用することを覚えておいてください。
var obj = canvas.getActiveObject();
var roundness = dynamicValue; // get using jquery sliders
if(obj)
obj.clipTo = function(ctx) {
ctx.arc(0, 0, roundness, 0, Math.PI * 2, true);
}
canvas.renderAll();
この問題を解決する方法、助けてください。