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

Far*_*dey 5 fabricjs

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

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

ID = text.get???
Run Code Online (Sandbox Code Playgroud)

该标识符应存在于

JSON.stringify(canvas) 
canvas.loadFromJSON() 
Run Code Online (Sandbox Code Playgroud)

标识符应该出现在JSON.stringify(canvas)canvas.loadFromJSON()中

And*_*zzi 13

创建对象时,向选项传递id属性:

var obj = fabric.Object({id: 'myid'});
Run Code Online (Sandbox Code Playgroud)

或在运行时添加:

obj.id = 'myid';
Run Code Online (Sandbox Code Playgroud)

保存到JSON时,使用propertiesToInclude参数指定要保存它:

obj.toJSON(['myid', 'others...']);
Run Code Online (Sandbox Code Playgroud)

要么

canvas.toJSON(['myid', 'others...']);
Run Code Online (Sandbox Code Playgroud)

加载回来将是自动的.


The*_*ris 3

对象上没有 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();
Run Code Online (Sandbox Code Playgroud)