時計待ち受けを作ろう!
時間の取得
今回のサンプルのスクリプトは、ステージ外の左上に配置してある空のムービークリップの1フレーム目にすべて記述しています。
まず、Flash Liteで時間と日付を取得する場合、「fscommand2()」という関数を使用します。これは、Flash Liteプレーヤーや携帯端末、デバイスなどと通信できる関数です。fscommand2("コマンド")のコマンドによってさまざまな情報を取得できるようになります。
時間の場合、「時」「分」「秒」と構成させており、それぞれ「GetTimeHours」「GetTimeMinutes」「GetTimeSeconds」コマンドを使用すれば、時間の情報を取得することができます。
Hours = fscommand2("GetTimeHours"); // 時
Minutes = fscommand2("GetTimeMinutes"); // 分
Seconds = fscommand2("GetTimeSeconds"); // 秒
上記のようなスクリプトとなり、「Hours」「Minutes」「Seconds」にその時の時間の数値が代入されます。取得した時間情報は10未満の場合、1けたの数値となってしまうので、表記を統一させるために、2けたの表示に合わせていきます。
Hours = (Hours
Minutes = (Minutes
Seconds = (Seconds
ここでポイントなのが、文字の連結を行う場合は「+」ではなく「add」を使用する必要があります。
これで、「時」「分」「秒」の数値が用意できたので、あとは「00:00:00」のような表示をさせていくことになります。現在、空のムービークリップ内で処理を行っているため、1つ上の階層の変数に時計の表示テキストを代入していくのですが、今回は絶対パスで表記していきます。
_root.timeTxt = Hours add ":" add Minutes add ":" add Seconds;
これで最初にステージに配置したテキストの変数と同期し、ダイナミックテキストに時間が表示されます。
また、サンプルでは「Impact」というフォントを使用しています。フォントが無い場合はうまく表示されないため、ほかのフォントなどに変更して試していただければと思います。
日付の取得
時間の取得と同様に、基本的には日付も同じような処理を行っていきます。
today = fscommand2("GetDateDay"); // 日
thisMonth = fscommand2("GetDateMonth"); // 月
thisYear = fscommand2("GetDateYear"); // 年
年は4けたの数値が返ってくるので良いのですが、月と日に関しては、時間と同様に10未満の数値だと1けたになってしまうため、2けたに調整する処理を行います。
weekday = fscommand2("GetDateWeekday"); // 曜日
注意点として、曜日に関しては、0-6の数値が返ってくることになります(0:日/1:月/2:火…)。
そのため配列などを用いて処理を行うのが最も理想的ではありますが、Flash Lite 1.1では配列が用意されていないため、eval()関数を用いて仮想的な配列処理を行っていきます。
wd0 = " [SUN]"//日
wd1 = " [MON]"//月
wd2 = " [TUE]"//火
上記のように「wd」+「数値」という変数名をつけ、曜日ごとに表示させるテキストを設定しておき、日付表示の変数「dateTxt」に代入する時に「eval("wd" add weekday)」という感じで記述していきます。
_root.dateTxt = thisYear add "-" add thisMonth add "-" add today add eval("wd" add weekday);
これで最もシンプルなデジタル時計が完成しました。
次に、アレンジを加えてアナログ時計にしてみたいと思います。