fabric.js 使元素携带额外属性

hook 内部函数使元素能够直接携带额外属性 canvas

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

demo函数

varrect = newfabric.Rect({

    top:100,

    left:100,

    width:60,

    height:70,

    fill:"red"

// selectable: false

    });

rect.extraData = {

msg:"2423423"

}

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

canvas.toJSON(["extraData"])

如下代码能够放弃prototype


codecode

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)
相关文章
相关标签/搜索