在Fabric.js中,如何修改对象类,以便所有子类都具有新的自定义属性?

payne8

我正在寻找一种方法来扩展具有自定义属性的基本fabric.Object类,我可以将其保存到JSON并从JSON加载,并将其一直传播到各个子类中。

具体来说,我想存储一个depth属性,以便当我从JSON加载对象时,能够向该对象添加适当的视差。

我想解决方案将包括修改fabric.Object.prototype。但是我仍在学习如何使用原型。

这是我尝试过的一些示例:http : //www.sitepoint.com/fabric-js-advanced/

// create a rectangle object
var rect = new fabric.Rect({
    left: 100,
    top: 100,
    fill: 'red',
    width: 20,
    height: 20
});

rect.toObject = (function (toObject) {
    return function () {
        return fabric.util.object.extend(toObject.call(this), {
            depth: 10
        });
    };
})(rect.toObject);

这在为特定对象“ rect”赋予所需属性以及使其在toJSON()方法中可用方面做得很好但是它无法使它可用于所有对象,并且当我使用时loadFromJSON()它不包含新属性。

任何帮助,将不胜感激!

其他使我更接近解决方案的资源:

Fabric.js-如何使用自定义属性将画布保存在服务器上
 -创建具有自定义属性的子类,但没有继承自它的子类。

https://github.com/kangax/fabric.js/wiki/Adding-additional-object-properties-to-serialized-JSON-
 完全重写了包含自定义属性所需的方法(我宁愿不修改核心fabricjs)

甘加克斯

最简单的方法是只指定要在调用时包括哪些属性toJSON

canvas.toJSON([ 'selectable', 'lockMovementX' ]);

但是,如果您想真正地将它们添加到输出中,则可以fabric.Object.prototype.toObject像使用矩形一样进行猴子修补

fabric.Object.prototype.toObject = (function (toObject) {
    return function () {
        return fabric.util.object.extend(toObject.call(this), {
            foobar: 123
        });
    };
})(fabric.Object.prototype.toObject);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在fabric.js中导出具有自定义属性的SVG?

来自分类Dev

Fabric JS父子对象

来自分类Dev

Fabric JS 对象缩放

来自分类Dev

Fabric JS中的BringForward

来自分类Dev

画布旋转 - Fabric js

来自分类Dev

Fabric中的YAML文件

来自分类Dev

Hyperledger Fabric 中的 GOPATH

来自分类Dev

如何在Fabric中创建自定义帮助菜单?

来自分类Dev

向来自 Azure Service Fabric 上的 Traefik 的所有响应添加自定义标头

来自分类Dev

Service Fabric的自定义ConfigurationSection实现

来自分类Dev

使用Fabric.js选择画布上的所有对象

来自分类Dev

Fabric.js计数对象

来自分类Dev

有没有办法修改子类,以便所有超类都继承更改?

来自分类Dev

如何使用 Vue js 使 Fabric js 具有反应性?

来自分类Dev

如何设置Fabric.js?

来自分类Dev

在Hyperledger Fabric中启动自定义网络时出错

来自分类Dev

具有响应本机错误的 Fabric crashlytics

来自分类Dev

Fabric.js的几何形状

来自分类Dev

改善Fabric.js性能

来自分类Dev

图像数据fabric.js

来自分类Dev

Fabric.js drawImage替代

来自分类Dev

图像数据fabric.js

来自分类Dev

Fabric.js drawImage替代

来自分类Dev

右键单击pan fabric js

来自分类Dev

在fabric.js中修改了哪个对象

来自分类Dev

如何下载Service Fabric证书?

来自分类Dev

如何获取Twitter Fabric密钥

来自分类Dev

如何获取Twitter Fabric密钥

来自分类Dev

如何对Hyperledger Fabric进行审核?