如何在 fabricjs 中 restore/reuse json 序列化对象?
How to restore/reuse json serialized objects in fabricjs?
我正在尝试使用 socket.io 和 fabric.js 创建协作白板。
当用户绘制某些东西时,我将路径作为 JSON 格式发送给其他用户:
canvas.on('path:created', function(e) {
canvas.remove(fabric.Path.fromObject(JSON.stringify(e.path)));
socket.emit('add path', e.path.toJSON());
});
如何在此处的 canvas 上重新创建此对象?
socket.on('add path', function(path) {
canvas.add(path); // doesn't work
});
尝试使用fabric.util.enlinvenObjects
该函数的目的是从对象切换到距离。
socket.on('add path', function(path) {
fabric.util.enlivenObjects([path], function(objects) {
objects.forEach(function(o) {
canvas.add(o);
});
});
});
对于那些在 TypeScript 项目中调用此函数的人...
在我的例子中,将 namespace
设置为空字符串 (''
) 并显式键入回调参数使函数运行顺利。
fabric.util.enlivenObjects(
action.payload.objects,
(enlivedObjects: fabric.Object[]) => {
canvas.add(...enlivedObjects);
canvas.renderAll();
},
'');
我正在尝试使用 socket.io 和 fabric.js 创建协作白板。
当用户绘制某些东西时,我将路径作为 JSON 格式发送给其他用户:
canvas.on('path:created', function(e) {
canvas.remove(fabric.Path.fromObject(JSON.stringify(e.path)));
socket.emit('add path', e.path.toJSON());
});
如何在此处的 canvas 上重新创建此对象?
socket.on('add path', function(path) {
canvas.add(path); // doesn't work
});
尝试使用fabric.util.enlinvenObjects
该函数的目的是从对象切换到距离。
socket.on('add path', function(path) {
fabric.util.enlivenObjects([path], function(objects) {
objects.forEach(function(o) {
canvas.add(o);
});
});
});
对于那些在 TypeScript 项目中调用此函数的人...
在我的例子中,将 namespace
设置为空字符串 (''
) 并显式键入回调参数使函数运行顺利。
fabric.util.enlivenObjects(
action.payload.objects,
(enlivedObjects: fabric.Object[]) => {
canvas.add(...enlivedObjects);
canvas.renderAll();
},
'');