• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:経過時間について)

経過時間の計測・表示方法について

このQ&Aのポイント
  • 経過時間を0から表示して、ボタンが押されたら経過時間の計測・表示をストップし次のフレームに行き、また0から経過時間を表示する方法を教えてください。
  • Flash8を使って経過時間を計測し、表示させる方法です。disptime.textとbtnというボタンを使って経過時間を表示しています。フレーム移動した際に経過時間を0から表示する方法がわかりません。
  • 経過時間の計測と表示を行い、ボタンが押されたら計測を停止し次のフレームに移動し、再び経過時間を0から表示する方法をご教示ください。Flash8を使用しています。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

意味不明な部分(=startflagの存在)や, 完全に不要だと思われる部分(=starttime 関係)のスクリプトが含まれていますね。 とりあえず, 完全に不要だと思われる部分を削除したシンプルなスクリプトを書いておきます。 ---不要な starttime 関係を削除したスクリプト--- stop(); startflag = true; this.onEnterFrame = function() { if (startflag == true) { keika = getTimer(); disptime.text = Math.floor(keika/1000); } }; btn.onRelease = function() { startflag = false; nextFrame(); }; ------------------------------------- これを元に, ボタン「btn」をクリックしたとき, 次のフレームに行って 0 からカウントを始めるものに作り替えます。 ------------------------------------- stop(); startflag = true; // スタート時の時刻を取得 startTime = getTimer(); this.onEnterFrame = function() { if (startflag == true) { // 現在の時間-スタート時間を取得 keika = getTimer()-startTime; disptime.text = Math.floor(keika/1000); } }; btn.onRelease = function() { // 必要↓?(これがあると動かないので取ります) //startflag = false; nextFrame(); // startTime を再設定 startTime = getTimer(); }; ------------------------------------- たとえば T1 = getTimer(); だと, これをいつ実行しても常にムービーが開始されてからの時間が T1 に代入されてしまいます。 T1 = getTimer() - 測定開始時間; にしておくと, 測定開始時間からの経過時間が T1 に代入されます。 結局, 測定を開始したいときに,そのときの時間を getTimer() で求めておいて, そこから現在の差分を求めるようにしておけば, 測定開始時間から現在の時間が求められます。 すごく単純に書くとこれだけのことです↓ ------------------------------ stop(); T0 = getTimer(); this.onEnterFrame = function() { disptime.text = getTimer()-T0; }; btn.onRelease = function() { T0 = getTimer(); }; ------------------------------ これが原型で, あとは秒単位表示にしてみたり,フレーム移動を加えればできると思います。

supertentu
質問者

お礼

回答ありがとうございました! getTimerの代入や足し算引き算って難しいですね><

関連するQ&A