fabric.js - 克隆的路径组不从 JSON 呈现

Posted

技术标签:

【中文标题】fabric.js - 克隆的路径组不从 JSON 呈现【英文标题】:fabric.js - Cloned path groups not rendering from JSON 【发布时间】:2017-06-04 01:45:13 【问题描述】:

我正在加载 SVG,转换为路径组,克隆多次,然后保存为 JSON。从 JSON 恢复时,路径组不会出现在画布上,尽管结构对象在那里(选择时显示边界框),但路径组具有 [0] 的数组。知道为什么会这样吗?在下面的 gif 中,我使用了撤消/重做方法,我撤消了,当我重做时,路径组消失了,但结构对象仍然存在。请注意:我已经在下面发布了关键代码,我无法发布我的完整源代码。我希望有人可以根据提供的信息弄清楚这里发生了什么。

// Load SVG and convert to path group.
fabric.loadSVGFromURL(url, function(objects, options)
   group = fabric.util.groupSVGElements(objects, options);
   canvas.add(group);
   canvas.renderAll();
); 

// Clone group and add to canvas
group.clone(function(c: any) 
    c.add(group);
);

// Save canvas to JSON
var obj = canvas.toJSON();

// Clear canvas and load JSON
canvas.clear();
canvas.loadFromDatalessJSON(obj);
canvas.renderAll();

【问题讨论】:

【参考方案1】:

问题在于canvas.toJSON();

JSON.stringify(canvas); 工作正常。

【讨论】:

以上是关于fabric.js - 克隆的路径组不从 JSON 呈现的主要内容,如果未能解决你的问题,请参考以下文章

从 JSON 加载不起作用。 Fabric.JS

使用 fabric.js 在画布中加载 JSON

Fabric.js 对象在 DOM 加载时从 JSON 呈现时无法更改填充颜色

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

Fabric.js 合并多个 Canvas JSON(或)SVG

是否可以在 fabric.js 中为路径设置动画?