2011-03-11 9 views
1

okだから私はこのキーを押すと、これらのjavascriptsを送信するために、矢印キーを使用するこのjavascriptを持っています。私は右( 'img')コマンドでイメージを移動させるが、srcの変更と遅延で動くイメージを変更しようとするコラボレーションスクリプトがある。助けて?画像のsrc属性を変更するタイミングのjavascriptとsrcが変更されますか?

<script type="text/javascript"> 
document.onkeydown = KeyCheck;  
function KeyCheck(event) { 

    var spacebar=32 
    var KeyID = event.keyCode; 
    switch(KeyID) { 

     case 39: 
     right('img'); 
     document.getElementById('img').src = 'guyr.png'; 
     setTimeout("right('img'); 
     document.getElementById('img').src = 'runr.png'; 
     setTimeout("right('img'); 
     document.getElementById('img').src = 'guyr.png';",100);",100); 
     break; 

    } 

} 
</script> 
+0

コードが壊れています。 –

+0

あなたのコードをちょっと整理しました。 @Simeを2番目にするには、コードを再訪したいかもしれません。 – Tom

+0

@Tomコードはまだ破損しています。文字列を複数の行にまたがることはできません。上記のコードはあなたのブラウザでエラーを生成します。 –

答えて

1

あなたがゲームやアニメーションのいくつかの並べ替えをしたい場合は、あなたのゲームループを構築する方法、それについて少しを読み取ろう、アニメーション、など

しかし、あなたは、テストのほんのいくつかの並べ替えを行っている場合このような何かをしようと、美しいコードではなく、アニメーションのアイデアは動作するはずです:

document.onkeydown = KeyCheck; 

function KeyCheck(event) { 

    var spacebar = 32; 
    var KeyID = event.keyCode; 

    switch (KeyID) { 

    case 39: 

     function guy(fn) { 
      right('img'); 
      document.getElementById('img').src = 'guyr.png'; 
      setTimeout(function() { 
       fn(guy); 
      }, 100); 
     } 
     function run(fn) { 
      right('img'); 
      document.getElementById('img').src = 'runr.png'; 
      setTimeout(function() { 
       fn(run); 
      }, 100); 
     } 

     guy(run); 

     break; 
    } 

} 

一つの機能は、アニメーションを継続するためには、パラメータによってそれを受けて、別のものを呼び出します。

+0

いいえ、それ自体は繰り返しています –

2

非同期GETリクエストをトリガするために起こっている、とブラウザが画像をキャッシュしている前に、最初に遅くなることがあります。あなたは何らかのゲームを実装しているようですね?単一の画像のsrcを変更する代わりに、すべての画像を最初に隠しておき、表示/非表示にする画像のCSS属性をvisibilityに切り替えることができます。こうすることで、読み込み中に必要なすべての画像をプリフェッチし、onkeydownイベントのハンドラとして要素を表示/非表示することができます。

+0

あなたはまた、CSSスプライトを使用して、それらを見てください! – JCOC611

+0

はい、いくつかの方法があります。これにはいくつかのUIフレームワークがあります。 –

+1

本当に!スプライトはゲーム作成(あなたがゲームを作っていると仮定)で*ロット*で使われます。 – JCOC611

関連する問題