2015-05-13 24 views
3

如何在fabricjs中获取对象标识符? 例如如何在fabricjs中获取对象标识符?

var text = new fabric.IText('hello world', { left: mouse1X, top: mouse1Y }); 

ID = text.get??? 

该标识符应当存在于

JSON.stringify(canvas) 
canvas.loadFromJSON() 

标识符应当存在于JSON.stringify(画布)canvas.loadFromJSON()

+0

请使用上面的编辑标签来编辑您的问题。 –

回答

1

有不ID属性上对象,但你可以创建自己的。 这样的:

var msg = 'hello world'; 
var myId = 1; 

var text = new fabric.IText(msg, 
{ 
    left: mouse1X, 
    top: mouse1Y, 
    id: myId } //my custom property 
); 

canvas.add(text); 

//get id value 
console.log(text.get('id')); 
//OR 
console.log(text.id)); 

//change id value 
text.set('id',5); 
//OR 
text.id = 5; 
canvas.renderAll(); 
+0

您的示例中的id不会保存在JSON中 – Faradey

+1

恐怕您的问题是如何在fabricjs对象上使用id,而不是如何将其保存在json上。我回答说,这是正确的解决方案。但如果你需要保存你的属性json看看我的答案在这里:http://stackoverflow.com/questions/30052223/save-canvas-to-image-with-all-its-object-and-back- to-canvas-with-all-objects-bac/30071209#30071209 如果我的答案帮助你,请打勾。 –

5

当你创建一个对象,沿着选项传递一个id属性:

var obj = fabric.Object({id: 'myid'}); 

或在运行时添加:

obj.id = 'myid'; 

当保存到JSON使用propertiesToInclude参数指定要保存的参数:

obj.toJSON(['myid', 'others...']); 

canvas.toJSON(['myid', 'others...']); 

加载后面将是自动的。

相关问题