Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在循环中加载Fabric.js图像_Javascript_Fabricjs - Fatal编程技术网

Javascript 在循环中加载Fabric.js图像

Javascript 在循环中加载Fabric.js图像,javascript,fabricjs,Javascript,Fabricjs,我使用Fabric.js在循环中加载图像,并相应地定位它们。似乎存在某种定时/刷新问题-以下代码有效: for (var x = 0; x < rewardImages.length; x++) { //add reward sticker: if (rewardPHPositions[x] != undefined) { fabric.Image.fromURL(rewardImages[x], function (oImg) {

我使用Fabric.js在循环中加载图像,并相应地定位它们。似乎存在某种定时/刷新问题-以下代码有效:

for (var x = 0; x < rewardImages.length; x++) {

    //add reward sticker:
    if (rewardPHPositions[x] != undefined) {
        fabric.Image.fromURL(rewardImages[x], function (oImg) {
            canvas.add(oImg); canvas.renderAll();
        }, { "height": 128, "width": 128, "left": rewardPHPositions[x][0], "top": rewardPHPositions[x][1], "category": "RewardSticker" });
    }
    canvas.renderAll();

    alert(x.toString());

}
但忽略此警报将导致未加载图像。这几乎就像是需要延迟或阻塞来降低循环的执行速度。我认为,只要我在回调中有canvas.add调用,该调用只应在加载图像时运行,我就应该可以了,但显然缺少了一些东西


我已经尝试按照建议将代码移出到闭包中,并且尝试了renderAll调用的不同位置,但是没有效果。有什么想法吗?

您的代码似乎是为我创建的一个提琴而工作的:如果您可以创建一个提琴或在这里发布整个代码,那么就更容易识别您的问题。我确信您正在更改画布的一些标志,因为您需要在添加对象时调用canvas.renderAll,这在默认属性中不是必需的。