在循环中加载Fabric.js图像

时间:2015-05-26 18:14:01

标签: 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) {
            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(它应该只在图像加载时运行)我本来应该没问题,但显然有些东西丢失了。

我已经尝试将代码移出到建议here的闭包中,并且我已尝试尝试使用renderAll调用的不同展示位置,但无济于事。有什么想法吗?

0 个答案:

没有答案