我在 .toJSON() 方法中返回所有 Canvas 对象时遇到困难。
在我的测试中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());
我这样做正确吗?
最佳答案
这是异步图像加载的问题:如果您等待几秒钟,图像将出现在 JSON 对象中,正如您在这个 fiddle http://jsfiddle.net/7BR8E/1/ 中看到的那样
因此,如果您想确保操作已加载图像的 Canvas ,则必须在 canvas.add(img)
之后的 fromURL()
回调函数内执行此操作。
关于javascript - Fabric.js toJSON() 方法缺少图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24826497/