アナログ時計の素材を用意

アナログ時計の素材を用意

 アナログ時計のサンプルファイルをこちらからダウンロード(http://www.thinkit.co.jp/images/article/144/3/14432.zip)してください(14432.zip/614 KB)。

 基本的な構成はデジタル時計と変わりません。メインとなるスクリプトは、ステージ外の左上に配置してある空のムービークリップの1フレーム目にすべて記述しています。

 アナログ時計を作成するにあたり、前ページのサンプルに少しアレンジを加えて、ベースを作成していきます。

 「長針」「短針」「秒針」オブジェクトを作成し、それぞれ、「tyoshin」「tanshin」「byoshin」というインスタンス名をつけます。そのほか、必要な部品などを配置して全体のバランスを調整します。

 注意点としては、オブジェクトをシンボル化し、オブジェクト配置する際の基準点に気をつけることです。各針のオブジェクトは、この基準点を中心に回転することとなります。

 次にデジタル時計のスクリプトに、アナログ時計を動かすための処理を追加していきます。

 アナログ時計は、「長針」「短針」「秒針」が時間に合わせて360度回転していきます。そのため、その時間の数値から角度を算出していきます。また、デジタル時計のスクリプト解説の通り、ムービークリップのプロパティを指定する場合は、ドットシンタックスで記述できます。具体的なスクリプトは下記の通りとなります。

_root.tanshin._rotation = Hours * 360 / 12 + Minutes * 360 / 12 / 60; // 短針(時)
_root.tyoshin._rotation = Minutes * 360 / 60; // 長針(分)
_root.byoshin._rotation = Seconds * 360 / 60; // 秒針

 時計の針の角度について簡単に解説します。

 まず、秒針と長針(分)は、実際の時計を見て分かるように、60秒、または、60分で360度回転します。つまり、1秒または1分は、360/60(6度)ということになります。10分であれば、360/60x10で60度の角度になります。

 短針(時)は、12時間で360度となるので、こちらも同じような計算を行い、1時は360/12(30度)となります。しかし、ここで実際の時計の動きをよく見てみると、短針は常に同じ角度のままではありません。例えば、時間が1:30の時には、1時と2時の間くらいに動いているはずです。この短針の動きを表現するため、さらに、「+ Minutes * 360 / 12 / 60」という数値をプラスさせています。これは短針(時)が1時から2時へ動く分の角度に長針(分)が1周する割合分を考慮して計算したものです。

 これでアナログ時計が動作するのを確認できます。

時計待ち受けのさらなる表現

 Flash Liteでの待ち受けコンテンツは、このように簡単に時間や日付を取得して表示させたり、アニメーションさせることができます。時間や日付以外にも、電波状態やバッテリー残量なども同じく「fscommand2()」関数で取得できます。

 今回のサンプルでは、Flash Liteの基本部分を把握してもらうため、表現やデザインなどを極力省いたシンプルな構成にしています。実際に作成する場合には、時計の文字の下に何か写真やイラストなどを配置するだけでも雰囲気ががらりと変わってきます。

 さらに、条件分岐などの処理を追加すると、時間帯によって朝・昼・夜という雰囲気を表現したり、月ごとに表示を変えれば季節感を表現することもできます。そのほか、毎回ランダムで色や背景などを変えたり、電波状況が悪くなったりバッテリーが無くなりそうな場合は、何か警告が出るようなデザインにすることもできます。

 このように、ただ単に時計を表示するだけではなく、アイデアと工夫次第でいろいろ表現を広げられるのが、Flash Liteの大きな魅力と言えます。

 次回は、簡単なゲームの作り方を解説していきます。

人気記事トップ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