2016-07-12 11 views
1

こんにちは私は何もイメージを描画しないようにしようとしています。最初に私はグループを作った(私はこの機能はプラグインの一部だと思うが問題ありません)私はいくつかの画像の名前とsrcを格納するための配列を作成し、私はそれらの画像を描画するためにループを呼び出すが、私はすべてのエラーで何も結果が得られないので、私は "b.name"問題は、そのすべてが良い変数にアサインするJavaScript配列は定義されていません

  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); 
      } 
+1

var b = mapVillage [i];で 'b'を上書きしています。 b = new Sprite(game.width、game.height); ' – Tushar

+0

変数' b'は 'mapVillage'配列のエントリと同時に新しいスプライトになることはできません。 – Pointy

+0

私は、後で私はhittestを行うつもりの各要素をcuzのスプライトをおろしてしようとしていたと思う – yahoo5000

答えて

3

あなたの間違いはここに

var b = mapVillage[i]; 
    b = new Sprite(game.width, game.height); 
であると思われる私のためcuzのです誰かが私に説明できる「b.src」が、私が得た結果は未定義です

あなたが探しているb.imageを持つmapVillageのエントリにbを最初に割り当てています。しかし、あなたは次の行でそれを上書きしています。だから、b.imageを呼び出すときには、そのプロパティを持たない「スプライト」の「画像」を探しています;

解決するには、Spriteを新しい変数に割り当てます。 var sprite = new Sprite(game.width, game.height);

1

あなたが最初にそれにSpriteを割り当てることをオーバーライド次にVAR bにオブジェクト(var b = mapVillage[i];)を割り当てます。次のような2つの変数が必要です。

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); 
} 
関連する問題