Javascript - 加载图像会导致事物随机变化

时间:2014-03-03 15:37:15

标签: javascript

这对我来说很奇怪。 我正在将我的游戏从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();">

任何人都知道这里发生了什么?

编辑:我发现了问题,就是在主脚本执行之前没有加载图像。咄。

2 个答案:

答案 0 :(得分:0)

Onload仅在加载完所有内容后触发(包括图像)
- 所以在那一点预加载似乎......傻?

或者只是将它们添加到HTML中,然后在onload事件中启动游戏 OR
执行&lt;中的预加载功能。头&gt;并通过添加以下内容来计算加载图像的数量:

imageX.onload = function(){ if (++number==total) startGame() }

每个(数字= 0,总数= 7是全局变量)

这假设没有其他东西需要加载..可能需要组合..

答案 1 :(得分:-1)

<body  onload="preload();" >

这意味着当加载正文时,浏览器将执行preload();