0

私は、通常の paperscript ルートを使用するのではなく、javascript を介して紙を制御する必要があるプロジェクトに取り組んでいます。私は現在、理解できない奇妙な動作のために立ち往生しています。ここに私が実行しているコードの簡略化されたバージョンがあります

paper.install(window);
$(document).ready(function() { 
    paper.setup("canvas");
    Game.ship = new Ship(view.center, 1) // Essentially calls new Raster("imgid"); and positions it
    view.draw(); 
});

何らかの理由で、このコードは空白のキャンバスになります。奇妙なのはnew Ship(...)、数秒後に開発コンソールを呼び出すと、キャンバス上でラスターが正常にレンダリングされることです。また、 の値を見ると、サイズが 32, 32 の canvas 要素が表示されることにも気付きましたGame.ship.elem.__canvas。そのような canvas は DOM に存在しません。

これはタイミングと関係があると思いますが、 setTimeout を使用して数秒後にラスターを作成するという非常に厄介なアプローチを除いて、それを機能させるために何をしなければならないかを理解できないよう$(document).ready()です呼ばれた。

ここで何が起こっているのか、または私を正しい方向に導くことができる何かについて誰か考えがありますか?

4

1 に答える 1

2

実際、私は自分でそれを理解することができました。これに遭遇した人にとって、問題は実際には画像の読み込みが完了する前にready()関数が呼び出されていたためでした。

このため、new Raster()呼び出しは存在しない画像をキャンバスにロードし、空白の結果を引き起こしていました!

于 2012-05-14T01:22:08.220 に答える