分配给变量的 Javascript 数组未定义

标签 javascript

你好,我想做的只是画几张图片。所以一开始我做了一个组(我认为这个功能是我正在使用的插件的一部分,但没关系)然后我做了一个数组来存储几个图像的名称和 src,然后我调用一个 for 循环来绘制这些图像,但问题是我没有得到任何结果,没有任何错误,所以我尝试提醒“b.name”和“b.src”,但结果我得到的是未定义的有人可以解释我哪里有问题因为对我来说它似乎一切都很好

            var mapGroup = new Group();
            var mapVillage = [
                {name: "leaf", src: "js/leaf.png"},
                {name: "sand", src: "js/sand.png"},
                {name: "stone", src: "js/stone.png"},
                {name: "cloud", src: "js/cloud.png"},
                {name: "mist", src: "js/mist.png"},
                {name: "rain", src: "js/rain.png"},
                {name: "grass", src: "js/grass.png"},
                {name: "sound", src: "js/sound.png"},
                {name: "hotwater", src: "js/hotwater.png"},
                {name: "waterfall", src: "js/waterfall.png"}
            ];

            for(var i = 0; i < mapVillage.length; i++){
                var b = mapVillage[i];
                b = new Sprite(game.width, game.height);
                b.image = game.assets[b.src];
                alert(b.name);
                mapGroup.addChild(b);
            }

最佳答案

你的错误在这里

   var b = mapVillage[i];
   b = new Sprite(game.width, game.height);

您首先将 b 分配给 mapVillage 的条目,该条目确实具有您要查找的 b.image。但是您将在下一行中覆盖它。因此,当您接下来调用 b.image 时,它会在没有该属性的“Sprite”上寻找“图像”;-)

要解决它,只需将 Sprite 分配给一个新变量即可。 var sprite = new Sprite(game.width, game.height);

关于分配给变量的 Javascript 数组未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38328455/

相关文章:

html - 如何在悬停时更改 SVG 图像的颜色?

javascript - OpenLayers React JSX 组件

javascript - IntelliJ IDEA 显示有错误的 JavaScript 文件

javascript - Gulp 任务创建 main.js 的 DEV 和 PROD 版本

javascript - 如何使用javascript仅打印选定的复选框?

javascript - 将 HTML 表单输入以 JSON 格式保存到本地文件(如果可能,使用 JavaScript)

javascript - 如何使用 webpack 包含 VelocityJS

javascript - 使用javascript从字符串中删除字符

javascript - Mootools 每 5 秒暂停一个 Array.each 循环

javascript - MVC 中多种模式下的 Select2 仅生成第一个值