javascriptに関する質問です。
例えば下のようなコードを書いたとします。
if(e.keyCode==39)X=X+10;
if(e.keyCode==37)X=X-10;
document.getElementById('me');
me.style.left=X;
つまり、十字キーの右を押したらキャラクター「me」が10px右へ、左を押したら10px左へ動きます。
質問したいのはキーを押しっぱなしにした場合の動作に関してです。
右を押すと、右へ一度動いて、そこで一度止まり、その後ザーっと動き出します。最初の動作の後にほんのわずかなんですが、「ため」のような間があるために満足いく動きが出せていません。
キーを押した瞬間からスムーズに動かすにはどうしたらよいでしょうか?
No.1ベストアンサー
- 回答日時:
おそらくリピートキーイベントが発生するまでの時間のことをおっしゃっているのだと思います。
キーを押すとkeyDownイベントが発生し、それからリピートキーイベントが発生するまでのインターバルはシステムによって管理されています。
キャラクターの移動などでは、キーイベントから直接キャラクターを移動させるのではなく、「移動中」フラグを別に用意して、(キーではなく)タイマーによって『「移動中」フラグがONなら移動を続ける』サブルーチンを作っておき、keyDownイベントでは「移動中」フラグをONにして上記ルーチンを呼び出す、keyUpイベントでは「移動中」フラグをOFFにする、というようにします。
教えていただきましたように、キーの押・離をフラグで管理して、それを一定時間ごとに見に行くようにすると思うとおりの動きが実現できました。
一人ではこの方法思いつかなかったと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) iMacのシェル内カーソル移動 1 2022/06/15 17:27
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript HTML&CSS Javascriptによる動的テーブル 1 2023/03/27 19:51
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- 作詞・作曲 この楽譜の音楽記号が分かりません 楽譜添付あり 10 2022/09/26 22:51
- Windows 10 エクスプローラで希望の場所が表示できない 2 2023/06/29 15:19
- Mac OS mac os xの設定の(起動ディスク)にブート用dvdが表示されません 1 2022/05/28 13:29
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- 物理学 物体間の摩擦力についてですが、 写真の①(上図)のように物体BをF[N]で引っ張ったとき 写真のよう 9 2023/06/08 16:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タブキー押下時のイベントをひ...
-
ユーザーフォームのテキストボ...
-
VB.NETのDropDownListをReadOnl...
-
【VB】タブ切り替え時のイベント
-
複数のテキストボックスのカン...
-
EXCEL VBA でIEを制御して、INP...
-
コンボボックスにキー入力をさ...
-
コマンドボタン(入力)をクリッ...
-
VB6で電卓を作っているのですが...
-
KEYPREVIEW=TRUEについて。意味...
-
【Mouse Down】キーリピートを...
-
特定のキーを押すまでループさ...
-
ListViewで、PageDownキーイベ...
-
javascript スムーズな動作
-
WPFでの時刻入力コントロールに...
-
Excel VBA マクロ実行中のみテンキ...
-
Access データ表示 完了時のイ...
-
EXCEL VBA----ユーザーフォーム...
-
SelectionChangeCommitted
-
VB.NETでフォームがない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
特定のキーを押すまでループさ...
-
一定時間操作されないと自動で...
-
Visual Basic 6.0 コンボボック...
-
タブキー押下時のイベントをひ...
-
WPFでの時刻入力コントロールに...
-
コンボボックスにキー入力をさ...
-
(VBA)チェックボックスのclick...
-
VB.NETのDropDownListをReadOnl...
-
Excel VBA マクロ実行中のみテンキ...
-
EXCEL VBA でIEを制御して、INP...
-
キーイベントを擬似的に発生さ...
-
KEYPREVIEW=TRUEについて。意味...
-
テキストボックスの入力文字を1...
-
VB.NETでフォームがない...
-
エクセルVBAのテキストボック、...
-
IEで、BackSpaceで「戻る」機能...
-
C# WMPメディアの終了検知 その2
-
複数のテキストボックスのカン...
-
コマンドボタン(入力)をクリッ...
おすすめ情報