我刚刚开始使用HTML5 canvas标签和javascript开发一些小游戏。但是,当我开始调用jquery ready处理程序时,我发现:
<script>$(function(){ game.init(); })</script>
然后我尝试绘制一个图像(预先存在于我的标记中),如下所示:
var spaceshipImg = $('#imgSpaceship')[0];
game.context.drawImage(spaceshipImg, 0, 350);
它不会工作,就好像img还没有加载。然而,如果我调用这个方法,在我的body标记中放置一个'onload‘,那么它确实可以工作。根据jQuery文档,所有图像都应该在此时加载,对吗?
发布于 2013-05-24 15:07:38
jQuery有两个不同的方法用于等待加载所有内容:ready
和load
方法。使用$(function() {})
语法时使用ready
方法。此方法不会等待加载所有图像(请参阅documentation)。为此,您需要使用load
方法。然后,您的代码将变为:
<script>
$(window).load(function () {
game.init();
});
</script>
现在,只有在加载了所有资源(包括图像)后,才会调用init
方法。
https://stackoverflow.com/questions/16729372
复制相似问题