当前位置: 首页 > 知识库问答 >
问题:

从Fabric中的JSON加载。js加载默认属性

吕寒
2023-03-14

我有一个画布,其中包含带有centeredRotation: true的对象和带有可选: false的其他对象。当我将此画布转换为JSON并重新加载时。这些对象具有默认属性。即没有居中旋转,对象是可选择的。我可以知道为什么会发生这种情况吗?很明显,像centeredRotation、可选这样的属性不包含在JSON中。

{“type”:“rect”,“originX”:“左”,“originY”:“顶部”,“左”:92,“顶部”:53,“宽度”:150,“高度”:150,“填充”:“#778899”,“笔画”:空,“笔画宽度”:1,“笔画DashArray”:null,“笔画线帽”:“对接”,“笔触线连接”:“斜接”,“中风米特”:10,“scaleX”:1,“scaleY”:1,“角度”:0,“flipX”:假,“翻转”:假,“不透明度”:0.4,“阴影”:空,“可见”:真,“剪辑到”:空,“背景颜色”:“”,“rx”:0,“ry”:0,“x”:0,“y”:0}],“背景”:“”“}

如何在加载对象时设置这些?

共有2个答案

柯河
2023-03-14

您也可以在创建更多新对象之前在主对象上指定此项。这为我保证了下次我从json加载对象时,可选对象将保存在“toObject”/“toJSON”函数中。

// Add 'selectable' to every object via the main class "Object"
fabric.Object.prototype.toObject = (function (toObject) {
    return function () {
        return fabric.util.object.extend(toObject.call(this), {
            selectable: this.selectable
        });
    };
})(fabric.Object.prototype.toObject);

我不明白为什么默认情况下没有这个功能,但我想这是因为它更像是一个状态而不是一个属性?

公孙俭
2023-03-14

您需要在< code>toJSON期间包含它们:

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

请参阅文档了解描述此“propertiesToInclude”参数的toJSON,其中包含一些示例。

 类似资料:
  • 问题内容: 我刚刚安装了CentOS,Apache和PHP。当我访问我的网站http://example.com/myapp/时,它显示为“禁止访问”。默认情况下,它不会加载index.php文件。 当我访问http://example.com/myapp/index.php时,它可以正常工作。 任何想法如何解决该问题? 问题答案: Apache需要配置为将index.php识别为索引文件。 实现

  • 本文向大家介绍Java加载默认配置,包括了Java加载默认配置的使用技巧和注意事项,需要的朋友参考一下 示例 要读取默认配置属性:            

  • 尝试从LibGDX的测试加载默认外观时 https://github.com/libgdx/libgdx/tree/master/tests/gdx-tests-android/assets/data(uiskin.atlas、uiskin.json、uiskin.png和default.fnt) 我得到以下错误。 以下是我如何加载和使用皮肤: 看起来它找不到这个: 但是,这一行存在于uiskin

  • 是否可以从服务器加载Spring Boot配置。json文件,而不是。亚马尔。房产?从文档来看,这是不支持开箱即用的——我想知道这是否可能,如果可能的话,人们将如何着手呢?

  • 我在尝试添加

  • 问题内容: 更新: 为避免问题完全归因于同一原产地政策的可能性,我尝试在本地提供服务,因为所有资产都来自使用 Serve 。它没有解决问题。因此,由于相同的原始策略,可能无法编辑小提琴,但是您可以在此处看到代码。 我正在尝试使用Dynatable加载外部JSON,跳过读取/标准化步骤(该步骤从现有表生成JSON)。应该支持它,但是它对我不起作用。 这是我对JSFiddle的尝试。从小提琴中可以看出