Fabric.js toJSON()方法缺少图像

时间:2014-07-18 13:43:23

标签: javascript serialization fabricjs

我很难在.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());

我这样做是否正确?

1 个答案:

答案 0 :(得分:1)

异步图像加载存在问题:如果您等待几秒钟,图像将出现在JSON对象中,您可以在这个小提琴中看到http://jsfiddle.net/7BR8E/1/

因此,如果您想确保在加载图像的情况下操作画布,则必须在fromURL()之后的canvas.add(img)回调函数内执行此操作。