1

私は最新バージョンを使用しています:

http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.3.0/fabric.min.js

以下のテスト コードは、1 秒後に保存するキャンバスをシミュレートします。次に、JSON から読み込みます。これは古いバージョンでは機能しますが、1.3.0 では機能しなくなりました。次のようなタイムアウトを設定し続ける必要があります。

setTimeout( function(){canvas.renderAll()},500);

常に機能するわけではありませんが、時々機能するようにします。

var img= "https://www.google.com/images/srpr/logo3w.png";          
fabric.Image.fromURL(img, function(img) {
        img.set({
        left: 200,
        top: 200   
    });   
    canvas.add(img); 
    canvas.renderAll();
}); 
 setTimeout( function(){
    var json=JSON.stringify(canvas);
    canvas.clear();         
    canvas.loadFromJSON(json);
    canvas.renderAll(); 
    //setTimeout( function(){canvas.renderAll()},500) // adding a timeout seems to be the only fix.
 },1000)

以前のようにタイムアウトを追加せずにレンダリングするにはどうすればよいですか?

4

1 に答える 1

10

ただ使う

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas));
于 2013-11-08T03:04:17.133 に答える