gpt4 book ai didi

canvas - Fabric.js : Get objects by name

转载 作者:行者123 更新时间:2023-12-04 10:00:39 25 4
gpt4 key购买 nike

是否可以通过名称获取Fabric.js对象?我可以添加子类,这将允许我向对象添加自定义名称属性。但是之后,我可以通过名称而不是索引来调用对象吗?例如

通过索引canvas.getItem(0);调用

我想要类似canvas.getItemByName(itemName);的东西

最佳答案

您可以使用以下代码在应用程序级别执行此操作:

/**
* Item name is non-unique
*/
fabric.Canvas.prototype.getItemsByName = function(name) {
var objectList = [],
objects = this.getObjects();

for (var i = 0, len = this.size(); i < len; i++) {
if (objects[i].name && objects[i].name === name) {
objectList.push(objects[i]);
}
}

return objectList;
};

如果对象名称是唯一的,则可以执行以下操作:

/**
* Item name is unique
*/
fabric.Canvas.prototype.getItemByName = function(name) {
var object = null,
objects = this.getObjects();

for (var i = 0, len = this.size(); i < len; i++) {
if (objects[i].name && objects[i].name === name) {
object = objects[i];
break;
}
}

return object;
};

现在,您可以调用 canvas.getItemByName('name1');canvas.getItemsByName('name1');

关于canvas - Fabric.js : Get objects by name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com