1

HTML5 キャンバス タグと JavaScript を使用していくつかの小さなゲームの開発を開始しました。しかし、私が始めたとき、私は次のように jquery ready ハンドラーを呼び出すとわかりました:

<script>$(function(){ game.init(); })</script>

そして、次のように (マークアップに事前に存在する) 画像を描画しようとします。

var spaceshipImg = $('#imgSpaceship')[0];
game.context.drawImage(spaceshipImg, 0, 350);

imgがまだロードされていないかのように、機能しません。ただし、body タグに「onload」を配置して同じメソッドを呼び出すと、機能します。jQueryのドキュメントによると、この時点ですべての画像をロードする必要がありますよね?

4

1 に答える 1

3

jQuery には、すべてがロードされるのを待機する目的で、areadyとメソッドの 2 つの異なるメソッドがありますload。このreadyメソッドは、構文を使用するときに使用され$(function() {})ます。ただし、このメソッドはすべての画像が読み込まれるのを待ちません (ドキュメントを参照してください)。そのためには、loadメソッドを使用します。コードは次のようになります。

<script>
  $(window).load(function () {
    game.init();
  });
</script>

このinitメソッドは、すべてのリソース (画像を含む) が読み込まれたときにのみ呼び出されるようになりました。

于 2013-05-24T07:07:37.933 に答える