2013-08-29 7 views
7

Fabric.jsには、object:modifiedのようなオブジェクト変更イベントがあります。私たちはキャンバス全体に似たイベントを持っていますか?Fabric.jsでCanvas Modified Eventを使用していますか?

実際には、元に戻す機能とやり直し機能を実装しようとしています。何かが発生した場合にキャンバスをJSONとして保存しています。また、アンドゥ機能のために再びキャンバスを読み込んでいます。

私たちはFabric.jsのこの機能のためのよりよい解決策を持っていますか?

+0

このイベントは、「オブジェクト:変更済み」とどのように異なると思われますか?オブジェクト変更:オブジェクトの変更を意味するので(キャンバスの背景色のようなものは例外ですが、通常は取り消し/やり直しの一部ではないと思われます) – kangax

+0

キャンバスに新しいオブジェクトを追加するときオブジェクト:変更されたイベントは発生していません。追加されたオブジェクトに対して修正(スケーリング、回転など)を実行する場合にのみ起動します。 – user2571818

+3

"object:added"および/または "object:removed"を使用できます - http://fabricjs.com/events/ – kangax

答えて

0

これは、linkでよりよく説明されています。この方法で使用してください:

canvas.on('object:moving', function(e) { // or 'object:added' 
    var activeObject = e.target; 
    console.log(activeObject.get('left'), activeObject.get('top')); 
}); 
0

追加/削除されたオブジェクトも確認してください。

var canvasModifiedCallback = function() { 
console.log('canvas modified!'); 
}; 

canvas.on('object:added', canvasModifiedCallback); 
canvas.on('object:removed', canvasModifiedCallback); 
canvas.on('object:modified', canvasModifiedCallback); 
関連する問題