我想通过循环一个名为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
}
答案 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
}