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 回答