图像未加载并推入阵列(javascript)

时间:2013-02-20 21:30:58

标签: javascript arrays object loops

我想通过循环一个名为GameImages的对象变量来为我的图像编写所有onload函数。当我在chrome中查看开发人员控制台时,我不确定为什么没有加载图像。 for循环是否会中断图像的加载?如何在循环中加载图像而不是编写每个onload函数?

var i = 1; //set increment variable

var GameImages = { //object to hold each image

    game1 : new Image(),
    game2 : new Image(),
    game3 : new Image(),
    game4 : new Image(),
    game5 : new Image(),

};

for(gameImage in GameImages) { //loop through each image

    gameImage.onload = function () { //set the onload function for the current image

        gamePosters.push(gameImage);
        console.log(gamePosters.length); //print out the new size of the gamePosters array

    };

    //give source of image. (my images are named game1.jpg, game2.jpg, etc.)
    gameImage.src = "images/assets/posters/games/game" + i + ".jpg";

    i += 1; //increment i
}

1 个答案:

答案 0 :(得分:1)

这是因为你的for (gameImage in GameImages)循环遍历你的每个GameImage对象的属性(即gameImage是第一个" game1"然后" game2& #34;等)。将您的代码更改为:

for (game in GameImages) {

   var gameImage = GameImages[game]; // This will get your actual Image
   gameImage.onload = function () { 

       gamePosters.push(gameImage);
       console.log(gamePosters.length); 

   };

   //give source of image. (my images are named game1.jpg, game2.jpg, etc.)
   gameImage.src = "images/assets/posters/games/game" + i + ".jpg";

   i += 1; //increment i
}
相关问题