我正在使用最新版本:
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)
如何在不添加像以前那样的超时的情况下进行渲染?
答案 0 :(得分:10)
只需使用
canvas.loadFromJSON(json,canvas.renderAll.bind(canvas));