Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FabricJS在更大的画布中反序列化_Javascript_Fabricjs - Fatal编程技术网

Javascript FabricJS在更大的画布中反序列化

Javascript FabricJS在更大的画布中反序列化,javascript,fabricjs,Javascript,Fabricjs,我需要将一个序列化的画布反序列化到另一个更大的画布上,如何将所有元素从序列化的JSON中移出,以便在新画布上确定位置?我结束了使用它,传递了FabricJs生成的JSON对象 fabric.util.enlivenObjects() 然后我固定了元素的位置并添加到新画布中 var iOCanvasJSON = JSON.stringify(baseCanvas); var jsonO = JSON.parse(iOCanvasJSON); fabric.util

我需要将一个序列化的画布反序列化到另一个更大的画布上,如何将所有元素从序列化的JSON中移出,以便在新画布上确定位置?

我结束了使用它,传递了FabricJs生成的JSON对象

fabric.util.enlivenObjects()

然后我固定了元素的位置并添加到新画布中

   var iOCanvasJSON = JSON.stringify(baseCanvas);
   var jsonO = JSON.parse(iOCanvasJSON);       

   fabric.util.enlivenObjects(jsonO.objects, function (enlivenedObjects) {
        for (var i = 0; i < enlivenedObjects.length; i++) {
            var oldTop = enlivenedObjects[i].top ;
            enlivenedObjects[i].top = oldTop + 100;
            canvasO.add(enlivenedObjects[i]);
        }
        canvasO.renderAll();
    });
var iOCanvasJSON=JSON.stringify(baseCanvas);
var jsonO=JSON.parse(iOCanvasJSON);
fabric.util.enlivenObjects(jsonO.objects,函数(EnlivedObjects){
对于(var i=0;i
如果反序列化,位置不会改变。这或多或少是一种方法,如果您愿意,还有一种更简单的方法。简单的方法是什么?如果您需要将新对象调整到更大的画布,您只需计算应将旧画布缩放多少以适应新大小,然后应用缩放。不需要修改对象位置,因为所有对象都会缩放。此外,您还可以在合身或护面两种方法之间进行选择。新版本的“fabric”不适用于此
4.2.0
。我得到了错误
预期的3-4个参数,但得到了2个。
。他们添加了第三个参数“namespace”。但我不知道那是什么。