我很难在.toJSON()方法中返回所有画布对象。
在我的测试http://jsfiddle.net/EqeZj/(Fabric.js v1.4.8)中,似乎只返回了形状对象。
// Do some initializing stuff
fabric.Object.prototype.set({
transparentCorners: false,
cornerColor: 'rgba(102,153,255,0.5)',
cornerSize: 12,
padding: 5
});
// initialize fabric canvas and assign to global windows object for debug
var canvas = window._canvas = new fabric.Canvas('c');
canvas.add(new fabric.Circle({
radius: 250,
left: 10,
top: 10,
fill: '#0B61A4'
}));
fabric.Image.fromURL('http://jsfiddle.net/img/logo.png', function(img) {
img.left = 58;
img.top = 110;
canvas.add(img);
});
canvas.includeDefaultValues = false;
fabric.log('JSON without default values: ', canvas.toJSON());
fabric.log('canvas.getObjects ', canvas.getObjects());
我这样做是否正确?
答案 0 :(得分:1)
异步图像加载存在问题:如果您等待几秒钟,图像将出现在JSON对象中,您可以在这个小提琴中看到http://jsfiddle.net/7BR8E/1/
因此,如果您想确保在加载图像的情况下操作画布,则必须在fromURL()
之后的canvas.add(img)
回调函数内执行此操作。