Fabric.js:只使用一个变量创建多个对象有问题吗

Fabric.js : Is there any issue for creating multiple objects using only one variable?

本文关键字:创建 变量 一个 对象 有问题 Fabric js      更新时间:2023-09-26
  • 我为什么要对此提出质疑

因为,从我的代码中,我希望用户创建无限的图像,所以它们必须以更短的方式创建,比如使用一个变量来创建所有图像。

这是我在用户添加图像时调用的函数的代码:

(已编辑:此代码现已修复。)

function addImage(){
    var imageAdded = new Image();
    imageAdded.onload = function (img) {
    var imgAdded = new fabric.Image(imageAdded, {
        clipName: picID,
        clipTo: function (ctx) {
            return _.bind(clipByName, imgAdded)(ctx)
        }
    });
    canvas.add(imgAdded);
    };
    var n = 0;
    if(n == 0){
        n = 1;
        addEventListenerFabric();
    }
}
function addEventListenerFabric(){
    canvas.on("object:selected", function (e) {
        alert(e.target.clipName + " is selected"); // fixed
        canvas.renderAll();
    });
}
  • 我的代码有什么问题

我的代码将根据图像的数量发出警报。例如,如果用户创建了3个图像,则在选择图像时会提醒3次是因为对所有变量使用一个变量吗(也许我的代码是错误的,请重新检查)

  • 如果不可能将一个变量用于所有变量,或者您有更好的解决方案。我很想听听你的意见

谢谢你的建议!

发生这种情况是因为在每次加载图像时都将object:selected绑定到画布。只需将其从onload函数中移出,它将只触发一次。