矩形とテキストのファブリックグループを作成しました。最後に、以下のコードを使用してグループクラスにカスタムプロパティ 'name'を追加しました。
JSON.stringify(canvas)を使用してキャンバスデータをJSONにシリアル化し、Json文字列をjavaに送信し、最後にJson文字列をファイルに保存するカスタムプロパティもファイルに保存されます。ファブリックjs-プロパティを追加してtoObjectメソッドを拡張すると、キャンバスに保存して戻すときに表示されません
var rect1= createRect(104,166,250,15);
var text1 = new fabric.Text('hello', { left: rect1.get('left'), top: rect1.get('top'),fontSize: 13 });
var group1=new fabric.Group([rect1,text1]);
group1.toObject = (function(toObject) {
return function() {
return fabric.util.object.extend(toObject.call(this), {
name: this.name
});
};
})(group1.toObject);
canvas.add(group1);
group1.name = 'New group';
IamはJavaを使用して同じファイルを読み込むと、このcanvas.loadFromJSONようなキャンバスに負荷JSONをしよう(jsonVal)私のカスタムプロパティが表示されません。長方形とテキストを持つJsonグループには、デフォルトのプロパティのみがロードされます。
カスタムプロパティを失うことなくJson文字列をキャンバスに読み込む方法を教えてください。
あなたがテキストやRECTしない、唯一のグループにnameプロパティを追加しました。その他のカスタムプロパティは定義されていません。 – Durga
ええ、私はグループオブジェクトの名前プロパティを追加しました。しかし、一度キャンバスをJsonの文字列に変換して、同じJsonの 文字列をキャンバスに読み込もうとすると、グループに追加したカスタム属性 '名前'が見つかりません。グループのカスタム属性を失うことなくJson文字列をキャンバスに読み込む方法 – Shakthi