6

我正在使用 Fabric.js 库在 Canvas 中创建一个“类似地图”的应用程序。我基本上把图像放下,然后用正确的坐标在图像顶部放置圆圈。点位置和名称作为从 ajax 调用接收的 JSON 数据传入。我需要一种方法来引用任何单个圈子,以便我可以获取有关该圈子的更多信息(每个圈子都有一个包含更详细信息的弹出窗口)。

我在文档中找不到解释如何执行此操作的任何地方,我尝试将 ID 添加到这样的对象:

tokens.add(new fabric.Circle({ radius: 25, fill: '#f55', top: 100, left: 70, id: "foo" }));

没有运气检索它。任何帮助将不胜感激。这也是我与这个社区的第一次互动,所以如果我的问题不够详细,或者还有其他问题,我深表歉意。

4

2 回答 2

0

您可以使用 fabric.object.prototype 添加属性。所以,添加:

fabric.Object.prototype.uid = ... ;
于 2015-07-30T09:26:36.840 回答
0

您可以扩展 fabric.Object 类并添加您自己的属性,但最简单的方法是使用fabric.util.Object.extend(). 您可以添加任意数量的自定义属性并使用object.toObject().id.

    extend(object, prop) {
        object.toObject = ((toObject) => {
            return function () {
                return fabric.util.object.extend(toObject.call(this), prop);
            };
        })(object.toObject);
    }

接着

    this.extend(line , {
            customType:'ArrowLine',
            id:this.randomId(),
            CommentId:activeObject.toObject().id, extensionId
    });
于 2021-02-26T07:35:26.727 回答