FabricJS - 加载序列化后引用 canvas
FabricJS - referencing after loading serialized canvas
我使用以下代码序列化我的 canvas:
var user_canvas = JSON.stringify(canvas.toDatalessObject());
一切正常。然后,我使用以下代码加载序列化 canvas,其中 'serial' 是序列化 canvas 的变量:
canvas.loadFromJSON(serial,canvas.renderAll.bind(canvas));
所有元素都按预期显示在页面上。从这里开始,虽然我无法弄清楚如何引用这些对象,但 canvas.getObjects()
作为一个空白数组出现,但是如果我 console.log(canvas)
我可以看到里面的元素,我就是无法引用它们。我该怎么做?
设置 5 秒的超时后,项目出现在 getObjects()
中,看来我只是想在加载它们之前访问它们。
编辑:原来 canvas.loadFromJSON
中内置了一个回调函数
您可以通过以下方式访问变量:
canvas.loadFromJSON(serialized_canvas,canvas.renderAll.bind(canvas),function(o, object) {
console.log(object);
}
我使用以下代码序列化我的 canvas:
var user_canvas = JSON.stringify(canvas.toDatalessObject());
一切正常。然后,我使用以下代码加载序列化 canvas,其中 'serial' 是序列化 canvas 的变量:
canvas.loadFromJSON(serial,canvas.renderAll.bind(canvas));
所有元素都按预期显示在页面上。从这里开始,虽然我无法弄清楚如何引用这些对象,但 canvas.getObjects()
作为一个空白数组出现,但是如果我 console.log(canvas)
我可以看到里面的元素,我就是无法引用它们。我该怎么做?
设置 5 秒的超时后,项目出现在 getObjects()
中,看来我只是想在加载它们之前访问它们。
编辑:原来 canvas.loadFromJSON
您可以通过以下方式访问变量:
canvas.loadFromJSON(serialized_canvas,canvas.renderAll.bind(canvas),function(o, object) {
console.log(object);
}