時間の取得

時間の取得

 今回のサンプルのスクリプトは、ステージ外の左上に配置してある空のムービークリップの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 < 10) ? ("0" add Hours) : Hours;
Minutes = (Minutes < 10) ? ("0" add Minutes) : Minutes;
Seconds = (Seconds < 10) ? ("0" add 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);

 これで最もシンプルなデジタル時計が完成しました。

 次に、アレンジを加えてアナログ時計にしてみたいと思います。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30