私はキャンバスで遊んでいますが、FF6でうまくいっているようですが、Chrome 13では、私が描いているスプライトは確実に現れません。 some researchを実行しましたが、この問題はアセットが完全にロードされる前に関数の起動に起因することがわかりました。ここ資産がロードされるまで遅延機能?
フィドル: http://jsfiddle.net/LqHY9/
関連Javascriptを:
function sprite(ipath, sh, sw, ih, iw){
/* BASIC INFO FOR SPRITE */
this.frameWidth = sw;
this.frameHeight= sh;
frame_rows = ih/sh;
frame_columns = iw/sw;
num_frames = frame_columns*frame_rows ;
this.frame = new Array();
frameNumber = 0;
for(row = 0; row<frame_rows; row++){
for(i=0;i<frame_columns;i++){
this.frame[frameNumber] = {};
this.frame[frameNumber].offsetX = this.frameWidth*i;
this.frame[frameNumber].offsetY = this.frameHeight*row;
frameNumber++
}
}
this.sheight = sh;
this.swidth = sw;
this.raw = new Image();
this.raw.src = ipath;
}
animation=new sprite("http://www.melonjs.org/tutorial/tutorial_final/data/sprite/gripe_run_right.png",64,64,64,512);
context.drawImage(animation.raw, animation.frame[0].offsetX, animation.frame[0].offsetY, animation.frameWidth, animation.frameHeight, 0, 0, animation.frameWidth,animation.frameHeight)
(心配しないでください、私のコンテキスト変数が定義されて、私はちょうどその少し切り取る、あなたが見ることができます
あまりにも遅かった...ああ...あなたはここで実際に動作するonloadメソッドを見ることができます:http://jsfiddle.net/6QRtY/。あなたのイメージ・リソースを最初に読み込み、それぞれにロード・イベントを添付することをお勧めします。各ロードイベントで、すべてのリソースがロードされているかどうか(フラグなど)を確認し、すべてのリソースがロードされている場合はmainメソッドを実行します。 –