所以我对Fabric.js有另一个问题,这可能再次归结为我自己的无知。
想象一下,使用自由绘制可以在画布上涂抹一些线条路径。完成后,我们禁用自由绘制,此时我想要绘制所有绘制的对象并将它们分组到一个实体中。
我创建了一个显示分组阶段的小提琴here。
var grp=new fabric.Group();
canvas.getObjects().map(function(o){
if(o.type=="path"){
o.hasControls=o.hasBorders=false;
grp.addWithUpdate(o);
//canvas.clear(); // this seems to break grouping
}
});
canvas.add(grp);
canvas._activeObject = null;
canvas.setActiveGroup(grp.setCoords()).renderAll();
这似乎运作得很好(即使创建组后路径本身看起来也会变暗)。
我现在想要将其导出为JSON,保存在数据库中,以及将来重新加载并复制整个布局。
在上面的小提琴中,我通过首先在创建组后将画布保存为JSON,然后尝试重新加载它来重现这种行为。
正如您所看到的,重新加载本身工作正常且定位良好,但之前分组的项目已加载到其组成部分,而不是作为一个组进行维护。 / p>
我在这里做些蠢事吗?
感谢您的帮助!