変数や表示の初期化を行う
1~6行目は使用する変数や表示の初期化を行っています。time.text = "00:00:00";まず、1行目ではテキストボックス「time」に初期の表示を入力しています。
startFlag = false;2行目では、スタートとストップの切り替えを行う変数を設定します。
firstFlag = false;3行目では、一時停止し、時間測定再開後したかどうかの判定を行う変数を設定します。
nowTime = 0 startTime = 0; dispBaseTime = 0;4~6行目でそれぞれ、経過時間の変数、開始時間の変数、表示時間の計算に使用する変数を初期化しています。
「getTimer()」を利用して表示する時間を計算する
以下の部分ではストップウォッチの時間表示を更新しています。function displayUpdate(){ _root.nowTime = getTimer(); _root.dispBaseTime = _root.nowTime - _root.startTime; milliSecond = Math.floor(dispBaseTime/10); milliSecond = ("00" + milliSecond).substr(-2, 2); second = Math.floor(dispBaseTime/1000%60); if(second < 10){ second = "0" + second; } minutae = Math.floor(dispBaseTime/1000/60); if(minutae < 10){ minutae = "0" + minutae; } time.text = minutae + ":" + second + ":" + milliSecond; }分解して見ていきましょう。
function displayUpdate(){ }「displayUpdate」という関数を作成します。 このFlash内で「displayUpdate()」という形でこの関数を呼び出すことにより{ }内の処理を実行することができます。
以降「displayUpdate(){ }」内の処理を記述しています。
_root.nowTime = getTimer();1行目で取得している「getTimer()」とは、Flashの再生がはじまってからのミリ秒(1/1000秒)を返すものです。
_root.dispBaseTime = _root.nowTime - _root.startTime;
「_root.startTime」は後で記述するスタートボタンを押した時間ですから、「Flashの再生時間 - スタートした時間 = スタートから経過した時間」が分かることになります。
milliSecond = Math.floor(dispBaseTime/10); milliSecond = ("00" + milliSecond).substr(-2, 2); second = Math.floor(dispBaseTime/1000%60); if(second < 10){ second = "0" + second; } minutae = Math.floor(dispBaseTime/1000/60); if(minutae < 10){ minutae = "0" + minutae; }この部分ではスタートから経過した時間を元に表示させたい分と秒を計算しています。
最初の2行で、取得した経過時間のミリ秒部分を2桁取得して整数二桁に変換しています。
1行目でミリ秒を1/100秒に切り捨てを行っています。
2行目でテキストの整形を行っています。ここでは1/100秒の結果が1や2のような一桁だった場合も「01」「02」といったように二桁で表示したいので、文字列として「00」を先頭につけ「001」といったような形にした上で後ろの2文字「01」を取り出すという処理を行っています。
次の部分ではミリ秒を秒に変換しています。ここではif文を使用して、一桁の場合は先頭に0を足しています。
分の部分も同様にミリ秒を分に変換し、二桁になるよう変換しています。
time.text = minutae + ":" + second + ":" + milliSecond;最後に計算した分、秒、1/100秒の3つの値を「:」で区切って、テキストボックスに表示しています。
次のページではボタンの動作を指定します。