• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ひとつのボタンでタイマーを動かしたり止めたりしたいのですが)

タイマーを動かしたり止めたりできるボタンの実装方法

このQ&Aのポイント
  • JavaScriptを使用して、タイマーを動かしたり止めたりできるボタンの実装方法について教えてください。
  • 以下のサイトからテトリスのコードをダウンロードしましたが、プレイ中にタイマーを一時停止できるポーズボタンを追加したいと考えています。
  • 現在のコードでは、ポーズボタンを押してもタイマーが一時停止されず、再度呼び出されるとタイマーの間隔が短くなってしまいます。正しい記述方法を教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

<input type="button" id="timer_control" value="pause" onclick="JavaScript:clear_timer();"> クリックするたびに、とくていのかんすうが1つよばれればよいので toggleTimer とでもしようか。 onclick="JavaScript:clear_timer();" の、「JavaScript:」は、らべるにしかならないので、ひつようなし。 <input type="button" id="timer_control" value="pause" onclick="toggleTimer();"> clear_timer() と、set_timer()を、1つにし toggleTimer() にする この2つのなかで、clickいべんとをつけたりはずしたりするのも、ひつようなし。 (inputようその、onclick でよばれるのだから、むよう) gameInterval = window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60); ここで、変数 gameInterval、maxspeed、speed はぐろーばるへんすうで (どこからでもへんこうできる) たいまーくりあーするときに、へんすう gameInterval もくりあーしておくと それをきじゅんに、たいまーがどうさちゅうなのか、とまっているのかはんだんできる setInterval のまえにある、window は、しょうりゃくできるよ たいまーのひきすうにもじれつをわたすのは、ださ~~い。 "Handle_Interval()" を "Handle_Interval" に。 いじょうをふまえて function toggleTimer () {  if (gameInterval) {   clearInterval (gameInterval);   gameInterval = null;  }    else {   gameInterval = setInterval (Handle_Interval, (maxspeed-speed + 1) * 60);  } } もし、みじかくしたいのなら(やっぱり?)みかくにんだけど function toggleTimer () {  gameInterval = gameInterval ?   (clearInterval (gameInterval), null):   setInterval (Handle_Interval, (maxspeed-speed + 1) * 60); } みじかくなってない? あぁ~~。 そうそう、ぜんかくくうはくは、はんかくに。これmyおきまりだから ^^;

noname#173931
質問者

お礼

よく回答していただきありがとうございます。 以前に回答していただいたもので、できるのか、 とあとになっておもいついたのですが・・・ また、なにか質問させていただいたときはよろしくお願いします。

その他の回答 (1)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

投稿前に、ごはん食べてたら、良い回答がついたみたいだけど、 せっかくだから <div id=akiko_div> <INPUT type="button" STYLE="color:#FFFFFF;font-family:Copperplate Gothic light" value="やりなおす" onclick="javascript:location.reload(true)"> <input type="button" onclick="pause();" value="PAUSE"> </div> <script type="text/javascript"> function flip(init){ var respons=init; return function(){ respons = !respons; return respons; } } var pause_flg=flip(false); function pause(){ if('undefined' != typeof gameInterval){ if(pause_flg()) clearInterval(gameInterval); else gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60); } } </script> </body>

noname#173931
質問者

お礼

二度目の回答をしていただき、ありがとうございます。 no.1さんに以前教えていただいた方法を後から 思い出してしまいました。 お手間をとらせてしまって申し訳ありません 貴重な時間をさいての回答、ありがとうございました。

関連するQ&A

専門家に質問してみよう