2

私はfabricJSを使用しています。描画用の素晴らしいライブラリです。

var data = JSON.stringify(canvas);

上記のコマンドは、すべてのオブジェクトとそのプロパティをJSON形式で取得するために使用されます。ただし、オブジェクトのみを文字列化したいと考えています。

たとえば。布を使って長方形を作る

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オブジェクトのサイズのために不必要な帯域幅を消費するキャンバスオブジェクト全体ではなく、ソケットを介してキャンバスに追加されている最新のオブジェクトを送信したいので、そうする方法はありますか?

4

2 に答える 2

3

はい、できます!:)

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);
于 2013-10-28T07:07:43.153 に答える
1

オプション オブジェクトを JSON に変換することはできませんか? 次に、ソケットを介して送信し、レシーバーで JSON を取得し、解析してfabric.Rect関数に適用し、そこで 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...
于 2013-10-27T22:47:52.327 に答える