繁体   English   中英

在Fabric.js中仅对一个对象进行字符串化

[英]Stringify only one object in Fabric.js

我正在使用fabricJS。 这是一个很棒的绘图库。

var data = JSON.stringify(canvas);

以上命令用于以JSON格式获取所有对象及其属性。 但是,我只想stringfy一个对象。

例如。 使用布料创建矩形

var rec = new fabric.Rect({
    left: mouse_pos.x,
    top: mouse_pos.y,
    width: 75,
    height: 50,
    fill: 'white',
    stroke: 'black',
    strokeWidth: 3,
    padding: 10
  });
canvas.add(rec);

我想要得到的JSON仅此对象(矩形)被添加到画布,而不是JSON整个画布被渲染。 可能类似于var data = JSON.stringfy(rec); 有没有办法这样做,因为我想通过套接字发送添加到画布的最新对象,而不是整个画布对象,因为JSON对象的大小,整个画布对象反过来会消耗不必要的带宽。

是的你可以! :)

var rect = new fabric.Rect({
    left: mouse_pos.x,
    top: mouse_pos.y,
    width: 75,
    height: 50,
    fill: 'white',
    stroke: 'black',
    strokeWidth: 3,
    padding: 10
  });

canvas.add(rect);

// get last item
var obj = canvas.item(canvas.size() - 1);

// stringify only one object
var json = JSON.stringify(obj);

您不能仅将选项对象转换为JSON吗? 然后,您可以通过套接字发送它,在接收器上获取JSON,将其解析并应用于fabric.Rect函数以在fabric.Rect绘制矩形。

var options = {
    left: mouse_pos.x,
    top: mouse_pos.y,
    width: 75,
    height: 50,
    fill: 'white',
    stroke: 'black',
    strokeWidth: 3,
    padding: 10
};

var rec = new fabric.Rect(options);
canvas.add(rec);

var yourData = JSON.stringify(options); // turns your options object into JSON

// ...rest of your code, that sends it through sockets...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM