AS3 画像を使ったデジタル時計
このFlashの表示にはFlash Player 9以降が必要です。
画像を使ったデジタル時計の作り方を紹介します。
まず0~9の画像を各フレームに配置したムービクリップを作ります。
次にそもインスタンスを2個並べたムービークリップを作り、
num10、num01とインスタンス名を付けます。
これが時分秒のそれぞれ2桁の数字になります。
さらに時分秒と表示するために「00:00:00」のように上記のムービクリップのインスタンスを並べたムービクリップdc_mcを作りそれぞれのインスタンスに、hh,mm,ssとインスタンス名を付けます。

DigitalClock.as
package {
import flash.events.Event;
import flash.display.MovieClip;
public class DigitalClock {
var clock_mc:MovieClip;
//コンストラクタ
function DigitalClock(mc:MovieClip) {
clock_mc = mc;
clock_mc.addEventListener(Event.ENTER_FRAME, on_EnterFrame);
}
//時計を更新する
function on_EnterFrame(event:Event):void {
var dateObj:Object = getDateDigit();
//0〜9の数字を各桁で表示する
clock_mc.hh.num10.gotoAndStop(dateObj.h10+1);
clock_mc.hh.num01.gotoAndStop(dateObj.h01+1);
clock_mc.mm.num10.gotoAndStop(dateObj.m10+1);
clock_mc.mm.num01.gotoAndStop(dateObj.m01+1);
clock_mc.ss.num10.gotoAndStop(dateObj.s10+1);
clock_mc.ss.num01.gotoAndStop(dateObj.s01+1);
}
//現在時刻を調べる
function getDateDigit():Object {
//現在時刻の時分秒を調べる
var now:Date = new Date();
var hh:Number = now.getHours();
var mm:Number = now.getMinutes();
var ss:Number = now.getSeconds();
//2桁を1桁ずつに分ける
var dateObj:Object = new Object();
dateObj.h10 = Math.floor(hh/10);
dateObj.h01 = hh%10;
dateObj.m10 = Math.floor(mm/10);
dateObj.m01 = mm%10;
dateObj.s10 = Math.floor(ss/10);
dateObj.s01 = ss%10;
return dateObj;
}
}
}
メインのタイムラインのフレームアクション
import DigitalClock; var dc:DigitalClock = new DigitalClock(dc_mc);
メソッド、プロパティの説明はこちら»»»
2009年5月6日 11:41 PM | カテゴリー:ActionScript3.0 Dateクラス, ActionScript3.0 サンプルコード