序列化并加载FabricJS组

时间:2014-10-13 09:21:48

标签: fabricjs

我尝试将所有freedraw对象分组到画布上,对该组进行缩放和序列化,然后将该组加载到另一个画布上。

目前,我正在使用此代码对画布上的所有对象进行分组。

var group = new fabric.Group(canvas.getObjects(), {
    originX: 'center',
    originY: 'center'
});

在此步骤之后,我不确定如何继续。如果我没有处理群组,我会对画布进行字符串化,然后使用loadFromJSON。但是,我不认为我可以对该组进行字符串化。当我尝试使用canvas.add()时,我得到一个最大回调错误。我是否需要先将组转换为路径对象? 这是一个jsFiddle http://jsfiddle.net/xvxh6d3L/6/

如果有人有任何想法,我真的很感激。我很困难。

1 个答案:

答案 0 :(得分:1)

您将获得最大回调错误,因为在将组添加到画布之前,需要从画布中删除组中的所有对象。

至于使它们成为对象,您可以使用JSON.stringify(group),然后使用fabric.util.enlivenObjectsJSON.parse'd对象转换回结构对象。之后,这个“enlived”对象可以重新添加到画布中。

如果您不想保存所有属性,也可以使用fabric.Object.toJSON方法。