Fabric JS以编程方式按ID选择对象

Sur*_*har 3 javascript canvas fabricjs

在Fabric JS中,我需要通过给定对象Name/ID"Circle"来选择对象

var onCircle = function () {
    canvas.add(new fabric.Circle({ id: 'Circle', radius: 30, fill: '#f55', top: 150, left: 150 }));
}
Run Code Online (Sandbox Code Playgroud)

我也知道该对象可以通过ItemID进行选择:

var SelectObject = function (ObjectName) 
{
    canvas.setActiveObject(canvas.item(0));
}
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

var SelectObject = function (ObjectName) 
{
    canvas.setActiveObject('my object name');
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*den 6

你只需要编写一个函数来循环每个对象,并在找到它时将其设置为活动状态.下面我检查id但您可以更改它以检查您要设置的对象上的任何属性.

var SelectObject = function (ObjectName) {
    canvas.getObjects().forEach(function(o) {
        if(o.id === ObjectName) {
            canvas.setActiveObject(o);
        }
    })
}
Run Code Online (Sandbox Code Playgroud)