Flash5でデジタル時計

   
 
FLASH5で機能が強化されたActionScriptのみで作ったデジタル時計です。
CGIやJavaScriptは使っていないので単独で動きます。
FLASH4でも挑戦していたのですが、うまくできませんでした。
  • 1フレーム目のアクションです。
    JavaScriptと同じようにDateオブジェクトのインスタンスを定義しています。
    Now = new Date();
  • 2フレーム目のアクションを示します。
     1: h1 = int(Now.getHours() / 10);
     2: h2 = int(Now.getHours() % 10);
     3: m1 = int(Now.getMinutes() / 10);
     4: m2 = int(Now.getMinutes() % 10);
     5: s1 = int(Now.getSeconds() / 10);
     6: s2 = int(Now.getSeconds() % 10);
     7: 
     8: tellTarget ("/h1") {
     9:         gotoAndStop (/:h1+1);
    10: }
    11: tellTarget ("/h2") {
    12:         gotoAndStop (/:h2);
    13: }
    14: tellTarget ("/m1") {
    15:         gotoAndStop (/:m1+1);
    16: }
    17: tellTarget ("/m2") {
    18:         gotoAndStop (/:m2+1);
    19: }
    20: tellTarget ("/s1") {
    21:         gotoAndStop (/:s1+1);
    22: }
    23: tellTarget ("/s2") {
    24:         gotoAndStop (/:s2+1);
    25: }
    26: gotoAndPlay (2);
  • 1〜6行目は時、分、秒を取得し、それぞれの10の位と1の位を求めています。
  • 8〜25行目は求めた時、分、秒の値を使ってそれぞれのムービークリップのインスタンスで該当する数字のフレームジャンプしています。
  • 26行目はフレームの最初に戻って上記の処理を繰り返すために必要です。
タイムラインは次のように2フレームのみです。


数字のムービークリップのタイムラインです。

1フレーム目が0、10フレーム目が9です。
getHoursメソッドで得られる値が実際の時間より1大きくなっている。Flashのサポートセンターを見てみるとタイムゾーンを日本に設定しているとき、夏時間適用期間の4月から10月の間は現在時間+1の値を返すようになっているとのこと。回避法は後日公開されるらしい。
Analog Clock
New Digital Clock
Calendar
Sin Curve
Digital Clock
Get URL
Hello World!
 
文字を点滅