【问题标题】:phaser.js - loading images in loop results in "Key not found in cache"phaser.js - 循环加载图像导致“缓存中找不到键”
【发布时间】:2017-12-16 02:01:28
【问题描述】:

我正在尝试将动态创建的图像从 JSON 文件加载到我的移相器项目中。 数组中的对象都有键“name”,对应的值为“box”+number

我正在像这样将它们加载到预加载器中:

var j = 0;
for (i in boxArray){
    game.load.image(boxArray[j].name, 'collCreatorAssets/boxes/'+boxArray[j].name+'.png');
    j++;
}

并尝试像这样在我的代码中使用它们:

j = 0;
for (i in boxArray){
    var newBox = boxes.create(boxArray[j].xPos, boxArray[j].yPos, boxArray[j].name);
    newBox.body.immovable = true;
    newBox.destructable = boxArray[j].destructable;
    j++;
}

将数组记录到控制台,我没有得到令人惊讶的坏消息。包含对象的数组工作正常。

这并不奇怪,因为我从 xPos 和 yPos 获得的位置分别与数组中对象内的相应值进行了检查。从而在游戏中正确放置图像对象。它只是没有加载图像。

在预加载功能中加载图像时,也可以在服务器上找到图像,我得到的唯一错误是启动游戏时:

Phaser.Cache.getImage: Key "box0" not found in Cache.

create函数的参数是

sprite.create(x,y,'key');

而load.image函数的参数是

game.load.image('key', 'path');

我已经测试过在预加载器中手动加载图像并使用循环在游戏中创建精灵,它可以工作。

所以我可以将问题缩小到预加载器,但我看不出我缺少什么。

【问题讨论】:

    标签: javascript phaser-framework


    【解决方案1】:

    找到了问题。我是个白痴。

    循环在获取 JSON 文件的请求的成功函数之外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多