[PR]テレビ番組表
今夜の番組チェック




Flash を実行してから経過した時間を調べたい



サンプルをダウンロード




■Flashを実行してから経過した時間を調べる


Flashを実行してから経過した時間を調べるには、getTimer() メソッドを使用します。経過時間を(単位:ミリ秒)で返します。


SWF ファイルを開いた瞬間から経過した時間を取得

var time = getTimer();





■ストップウォッチを表現する


getTimer() メソッドは、swf ファイルの実行を開始してから経過した時間を調べる事ができますが、このメソッドを使うとストップウオッチの計算をする事も可能です。





1.測定を開始する


まず、測定を開始したい時点の getTimer() メソッドで得られる時間を変数 time に格納します。


測定を開始するタイミングで現在の経過時間を変数に格納

onClipEvent (load) {
	var time = getTimer();
}

測定を開始するタイミングで現在の経過時間を変数に格納(Flash 6 以降)

var time = getTimer();




2.測定中の経過時間を調べる


後は、現在の getTimer() と 変数 time との差を調べると、測定中の時間がわかります。


測定中に経過している時間

onClipEvent (load) {
	var time = getTimer();
}

onClipEvent (enterFrame) {
	trace(getTimer() - time);
}

測定中に経過している時間(Flash 6 以降)

var time = getTimer();

onEnterFrame = function(){
	trace(getTimer() - time);
}








ローカル時間を取得したい






■ローカル時間を取得する


まず Date クラスをインスタンス化します。引数を省略すると、ユーザーのローカルの時間を取得することができます。


Date オブジェクトを作成する

var date_obj = new Date();





■西暦を取得する

getFullYear() メソッドを使って取得します。 4 桁の西暦で取得できます。

西暦を取得する

var date_obj = new Date();
trace(date_obj.getFullYear());


■月を取得する

getMonth() メソッドを使って取得します。0 から始まる 11 までの数値が取得できるので +1 して使用します。

月を取得する

var date_obj = new Date();
trace(date_obj.getMonth() + 1);


■日を取得する

getDate() メソッドを使って取得します。1 から始まる 31 までの数値を取得できます。

日を取得する

var date_obj = new Date();
trace(date_obj.getDate());


■曜日を取得する

getDay () メソッドを使って取得します。0 から始まる 6 までの数値が取得できるので、曜日名称を配列に入れておいて使うといいでしょう。

曜日を取得する

var date_obj = new Date();

var ary = ["日","月","火","水","木","金","土"];
trace(ary[date_obj.getDay()]);


■時間を取得する

getHours () メソッドを使って取得します。0 から始まる 23 までの数値が取得できます。

時間を取得する

var date_obj = new Date();
trace(date_obj.getHours());


■分を取得する

getMinutes () メソッドを使って取得します。0 から始まる 59 までの数値が取得できます。

分を取得する

var date_obj = new Date();
trace(date_obj.getMinutes());


■秒を取得する

getSeconds () メソッドを使って取得します。0 から始まる 59 までの数値が取得できます。

秒を取得する

var date_obj = new Date();
trace(date_obj.getSeconds());


■ミリ秒を取得する

getMilliseconds () メソッドを使って取得します。0 から始まる 999 までの数値が取得できます。

ミリ秒を取得する

var date_obj = new Date();
trace(date_obj.getMilliseconds());







デジタル時計を作りたい



サンプルをダウンロード




■デジタル時計を作ってみる


上の項目で得られる日付、時間を文字列として結合しテキストフィールドに表示します。


テキストフィールドにデジタル時計を表示する

_root.createTextField("text_field",0,0,0,200,20);

// 曜日データ
var ary = ["日","月","火","水","木","金","土"];

onEnterFrame = function(){

	// ローカル時間を取得
	var date_obj = new Date();

	var year = date_obj.getFullYear();
	var month = date_obj.getMonth() + 1;
	var day = date_obj.getDate();
	var week = ary[date_obj.getDay()];
	var hour = date_obj.getHours();
	var min = date_obj.getMinutes();
	var sec = date_obj.getSeconds();
	var mil = date_obj.getMilliseconds();

	// ローカル時間で取得可能パラメータを文字として連結
	var str = "";
	str += (year < 10 ? "0" : "") + year;
	str += "/";
	str += (month < 10 ? "0" : "") + month;
	str += "/";
	str += (day < 10 ? "0" : "") + day;
	str += " ";
	str += "(" + week + ")";
	str += " ";
	str += (hour < 10 ? "0" : "") + hour;
	str += ":";
	str += (min < 10 ? "0" : "") + min;
	str += ":";
	str += (sec < 10 ? "0" : "") + sec;
	str += ":";
	str += (mil < 100 ? "0" : "") + (mil < 10 ? "0" : "") + mil;
	_root.text_field.text = str;
}






■『曜日 + 月 + 日 + 時刻(24:00:00) + タイムゾーン + 年』を取得する

toString() メソッドを使用して取得します。

『曜日 + 月 + 日 + 時刻(24:00:00) + タイムゾーン + 年』を取得する

var date_obj = new Date();
trace(date_obj.toString());







アナログ時計を作りたい



サンプルをダウンロード




■針用ムービークリップを作成する

上方向に針が向いているムービークリップを3つ用意します。

短針用ムービークリップを "tansin"
長針用ムービークリップを "tyousin"
秒針用ムービークリップを "byousin"

とします。


■秒針の角度

getSeconds() メソッドから秒を取得して 60 で割り 0.0 〜 1.0 の大きさにします。 360 度を掛けて角度とします。


秒針の角度

var date_obj = new Date();
byousin._rotation = date_obj.getSeconds() / 60 * 360;


■長針の角度

getMinutes() メソッドから分を取得して 60 で割り 0.0 〜 1.0 の大きさにします。 360 度を掛けて角度とします。


長針の角度

var date_obj = new Date();
tyousin._rotation = date_obj.getMinutes() / 60 * 360;


■短針の角度

getHours() メソッドから時間を取得して 24 で割り 0.0 〜 1.0 の大きさにします。短針は 1 日 2 週するので 720 度を掛けて角度とします。 さらに getMinutes() メソッドから分を取得して 60 で割り 0.0 〜 1.0 の大きさにします。短針は 1 時間に 30 度回転するので 30 度を掛けて角度に加算します。


短針の角度

var date_obj = new Date();
tansin._rotation = date_obj.getHours() / 24 * 720 + date_obj.getMinutes() / 60 * 30;