这对我来说很奇怪。 我正在将我的游戏从ASCII移动到平铺图形,我遇到了问题。 设置图像预加载器后,我得到错误,告诉我各种东西是未定义的。 这是图像加载功能:
function preload(){
characterImage = new Image();
characterImage.src = "images/character.png";
groundImage = new Image();
groundImage.src = "images/ground.png";
wallImage = new Image();
wallImage.src = "images/wall.png";
doorImage = new Image();
doorImage.src = "images/door.png";
windowImage = new Image();
windowImage.src = "images/window.png";
creatureImage = new Image();
creatureImage.src = "images/creature.png";
stairImage = new Image();
stairImage.src = "images/stairs.png";
nullImage = new Image();
nullImage.src = "images/null.png";
}
除此之外我没有触及
以外的任何东西<body id="body" onload="preload();">
任何人都知道这里发生了什么?
编辑:我发现了问题,就是在主脚本执行之前没有加载图像。咄。答案 0 :(得分:0)
Onload仅在加载完所有内容后触发(包括图像)
- 所以在那一点预加载似乎......傻?
或者只是将它们添加到HTML中,然后在onload事件中启动游戏
OR
执行&lt;中的预加载功能。头&gt;并通过添加以下内容来计算加载图像的数量:
imageX.onload = function(){ if (++number==total) startGame() }
每个(数字= 0,总数= 7是全局变量)
这假设没有其他东西需要加载..可能需要组合..
答案 1 :(得分:-1)
<body onload="preload();" >
这意味着当加载正文时,浏览器将执行preload();