1

hook 内部函数使元素可以直接携带额外属性

支持toJSON 和 loadFromJSON
导入导出的时候会自动携带上extraData

demo

varrect = newfabric.Rect({

    top:100,

    left:100,

    width:60,

    height:70,

    fill:"red"

// selectable: false

    });

rect.extraData = {

msg:"2423423"

}

发现一种更加有效的方法 只需要在导出的时候 增加导出数组

canvas.toJSON(["extraData"])

以下代码可以放弃


code

fabric.Object.prototype.toObject = (function(toObject) {

    return function() {

        return fabric.util.object.extend(toObject.call(this), {

         extraData:this.extraData

        })

     }

})(fabric.Object.prototype.toObject)

fabric.Object._fromObject = (function(fromObject) {

    return function(className, object, callback, extraParam) {

        return fromObject.call(this,className, object, function(instance){

            instance.extraData = object.extraData;

            callback && callback.call(this,instance)

        }, extraParam);

      }

})(fabric.Object._fromObject)

546669204
62 声望8 粉丝