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)
相關文章
相關標籤/搜索