Flash/ActionScript

ストップウォッチ完全版にチャレンジ!(2ページ目)

ストップウォッチを作成します。長文のActionScriptにチャレンジし、オリジナルデザインのストップウォッチを作成してみましょう!

執筆者:渡辺 大介

変数や表示の初期化を行う

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();
_root.dispBaseTime = _root.nowTime - _root.startTime;
1行目で取得している「getTimer()」とは、Flashの再生がはじまってからのミリ秒(1/1000秒)を返すものです。
「_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つの値を「:」で区切って、テキストボックスに表示しています。

次のページではボタンの動作を指定します。
  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます