我正在加载SVG,转换为路径组,多次克隆然后保存到JSON。在从JSON恢复时,路径组不会出现在画布上,尽管布料对象在那里(选择时显示边界框),但路径组的数组为[0]。知道为什么会这样吗?在下面的gif中我使用了undo / redo方法,我撤消了,当我重做时,路径组已经消失但是结构对象仍在那里。请注意:我已经发布了以下密钥代码,我无法发布完整的源代码。我希望有人能根据提供的信息弄清楚这里发生了什么。
// 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();
答案 0 :(得分:0)
问题在于canvas.toJSON();
JSON.stringify(canvas);
效果很好。