loadFromJSON cliptoパラメータで作業しても、デモとして与えられたhttp://fabricjs.com/kitchensinkを試しました。loadFromJSONはcliptoで動作しません
キャンバス上に丸みを帯びたオブジェクトが表示されますが、JSONファイルとしてエクスポートすると、JSONファイルが正しく読み込まれないため、fabricJSが間違った書き出しをエクスポートします。
エクスポートJSON:
{"objects":[{"type":"rect","originX":"left","originY":"top","left":241,"top":253,"width":50,"height":50,"fill":"#06980e","stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,"scaleX":5.59,"scaleY":5.59,"angle":0,"flipX":false,"flipY":false,"opacity":0.8,"shadow":null,"visible":true,"clipTo":"function (ctx) {\n ctx.arc(0, 0, radius, 0, Math.PI * 2, true);\n }","backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"rx":0,"ry":0}],"background":""}
どのように私はこの問題を解決することができますか?おそらくこの部分のコードについての問題です。
この問題を解決するために、私はちょうどでき$scope.clip = function() {
var obj = canvas.getActiveObject();
if (!obj) return;
if (obj.clipTo) {
obj.clipTo = null;
}
else {
var radius = obj.width < obj.height ? (obj.width/2) : (obj.height/2);
obj.clipTo = function (ctx) {
ctx.arc(0, 0, radius, 0, Math.PI * 2, true);
};
}
canvas.renderAll();
};
あなたは '話しています/ n'は 'json'に入っていますか? –
いいえ、私は ctx.arc(0、0、半径、0、数学的PI * 2、真)を意味します 半径は数値でなければなりません。 – kemalatila