में एक JSON ऑब्जेक्ट को Deserialize मैं fabricjs का उपयोग कर एक सहयोगी व्हाइटबोर्ड विकसित कर रहा हूँ। जब कोई उपयोगकर्ता एक नई कपड़े वस्तु बनाता है, तो मैं इसे क्रमबद्ध करता हूं और इसे अन्य सभी उपयोगकर्ताओं को भेजता हूं।Fabric.js
var rect = new fabric.Rect();
canvas.add(rect);
socket.emit("newObject", JSON.stringify(rect)); // sends the object to other users
जब उन उपयोगकर्ताओं को क्रमबद्ध वस्तु प्राप्त होती है, तो इसे deserialized और उनके कैनवास में जोड़ा जाना चाहिए। इसे करने का बेहतरीन तरीका क्या है? मैं एक समारोह है कि एक वस्तु, केवल पूरे कैनवास (loadFromJSON) deserializes ढूँढने में सक्षम नहीं था, इसलिए मैं एक unelegant समाधान लागू: यह करने के लिए एक बेहतर तरीका के लिए
function drawRoomObjects(roomObjects){
var canvasString = "{\"objects\":[";
for(var roomObjectKey in roomObjects){
canvasString += roomObjects[roomObjectKey];
}
canvasString += "], \"background\":\"\"}";
var tmpCanvas = new fabric.Canvas();
tmpCanvas.loadFromJSON(canvasString);
for(var k in tmpCanvas.getObjects()) {
canvas.add(tmpCanvas._objects[k]);
}
canvas.renderAll();
}
कोई सुझाव?
यह एक आकर्षण की तरह काम करता था। मुझे 'enlivenObjects' का उपयोग करने से पहले अपने जेसन स्ट्रिंग पर' JSON.parse() 'को कॉल करना पड़ा – stropitek