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

时间:2013-11-08 02:57:46

标签: 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);

让它有时工作但不是所有时间。

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)

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

1 个答案:

答案 0 :(得分:10)

只需使用

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas));