Fabric.js:按名称获取对象

 陈陈 发布于 2023-02-07 16:58

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

按索引调用 canvas.getItem(0);

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

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

    /**
     * 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');.

    2023-02-07 17:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有