在Fabric.js 1.3.0中使用canvas.loadFromJSON时,不会加载图像

use*_*123 1 fabricjs

我正在使用最新版本:

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

下面的测试代码模拟您将在1秒后保存的画布.然后从JSON加载它.这适用于旧版本,然后在1.3.0上它停止工作.你将不得不继续像一样超时:

setTimeout( function(){canvas.renderAll()},500);
Run Code Online (Sandbox Code Playgroud)

使它有时工作但不是所有时间.

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)
Run Code Online (Sandbox Code Playgroud)

如何在不添加像以前那样的超时的情况下进行渲染?

Joh*_*ohn 10

只是用

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas));
Run Code Online (Sandbox Code Playgroud)