簡體   English   中英

Javascript數組賦值變量未定義

[英]Javascript array assinging to variable gets undefined

您好,我想做的只是畫幾張圖像。所以起初,我做了一個小組(我認為這個功能是我正在使用的插件的一部分,但是沒關系),然后我做了一個數組來存儲名稱並幾個圖像的src,然后我調用一個for循環來繪制這些圖像,但問題是我沒有任何結果,沒有任何錯誤,所以我嘗試提醒“ b.name”和“ b.src”,但結果是undefined有人可以解釋一下我的問題在哪里,這似乎一切都很好

            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”上查找“ image” ;-)

要解決此問題,只需將Sprite分配給一個新變量。 var sprite = new Sprite(game.width, game.height);

首先,您將一個對象( var b = mapVillage[i]; )分配給var b ,然后重寫該對象,為其指定一個Sprite 您需要兩個變量,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM