答えをキーボードから入力して、リターンで正解と比較して判定させています。
もし、答えが不正解の時、次に進むボタンを表示させ、一旦画面を停止させているのですが、
ここで、次に進む際、ボタンクリックでは面倒なので、リターンキーで次に
進ませたいのですが、やり方がわかりません、
ボタンを表示させた時点で、ボタンクリック以外はだめでしょうか?
もし、ダメな場合、ボタンの代わりに「次に進むにはリターン」というコメントを出して、
そこでリターン判定を行う?のでしょうか。
document.getElementById("aaa").style.visibility="visible"; //ここでボタンを表示
document.getElementById("aaa").onclick = function (){
setNextGameParam() //ボタンを押したら、次の問題へ進む
start()
}
http://q.hatena.ne.jp/1444790440
これの続きで良いんですよね。
今のコードがこうなってると想定。
function key_Press(e){ var ret = true; var keycode = getKEYCODE(e); document.getElementById("keycode_check").innerHTML = keycode; if(keycode == '13'){ if (impwd == SEIKAI) { // 正解かどうかを判定 document.getElementById("aaa").style.visibility="visible"; //ここでボタンを表示 document.getElementById("aaa").onclick = function (){ setNextGameParam(); //ボタンを押したら、次の問題へ進む start(); }; } } else if(keycode == 8){ ... 以下省略
ボタンが表示されてたら、次に進む処理を呼び出してあげれば良いです。
function key_Press(e){ ... if(keycode == '13'){ if (impwd == SEIKAI) { // 正解かどうかを判定 var btn = document.getElementById("aaa"); if (btn.style.visibility != "visible") { // ボタンが表示されていないか? btn.style.visibility = "visible"; btn.onclick = function (){ setNextGameParam() //ボタンを押したら、次の問題へ進む start() } } else { // 次に進むボタンが表示されてたら、リターンキーでも次の問題へ進む // ★ setNextGameParam(); start(); } } } else if(keycode == 8){ ... 以下省略
次に進む処理を二度も書くのはアレなので、ボタンの click メソッドを呼ぶのでも良い。
function key_Press(e){ ... if(keycode == '13'){ if (impwd == SEIKAI) { // 正解かどうかを判定 var btn = document.getElementById("aaa"); if (btn.style.visibility != "visible") { // ボタンが表示されていないか? btn.style.visibility = "visible"; btn.onclick = function (){ setNextGameParam(); //ボタンを押したら、次の問題へ進む start(); }; } else { // 次に進むボタンが表示されてたら、リターンキーでも次の問題へ進む // ★ btn.click(); // 「次に進む」ボタンをクリック } } } else if(keycode == 8){ ... 以下省略
「次に進む」ボタンが表示されていたら、正解かどうかの判定をする必要もないんじゃないか、という話もある。
function key_Press(e){ ... if(keycode == '13'){ // ★正解判定の前にリターンキーで次に行くかどうか判定しちゃう // 次に進むボタンが表示されてたら、リターンキーでも次の問題へ進む var btn = document.getElementById("aaa"); if (btn.style.visibility != "visible") { btn.click(); } if (impwd == SEIKAI) { // 正解かどうかを判定 btn.style.visibility = "visible"; btn.onclick = function () { setNextGameParam() //ボタンを押したら、次の問題へ進む start() }; } } else if(keycode == 8){ ... 以下省略
それで良いと思います。
2015/10/22 12:01:08http://q.hatena.ne.jp/1443492042#a1251924
これと同じノリで、キーコードがリターンキーのときに処理をすれば良いと思います。
ありがとうございます。
2015/10/23 11:42:07判定後に、画面の一時停止は、フラグを良く使うんですね。
何とかうまくいきました。
ありがとうございました。