2010年9月1日水曜日

[MA-4] 自作MCを用いたデジタル時計

1. ex4では,ex3で作成したムービークリップ,及びアクションスクリプトを流用するため,ex3で作成したファイルを複製する.
2. 1で複製したファイルを開く.
3. ex3で作成済みのシンボル1(ムービークリップ)を,fig. 1のようにステージ上に複数配置し,時分秒の区切り文字「:」を追加する.
fig. 1

4. 3でステージ上に配置した各ムービークリップは,ex3で作成したとおり,1~10のフレームに,数字の0~9が対応しているものとする(fig. 2).
fig. 2

5. 3でステージ上に配置したムービークリップのインスタンス名を以下のように変更する.
10の位numMcHour0
1の位numMcHour1
10の位numMcMin0
1の位numMcMin1
10の位numMcSec0
1の位numMcSec1

6. ムービークリップを配置したタイムラインに以下のASを記述

ActionScript2.0
this.onEnterFrame = function() {
 var DateObj:Date = new Date();
 var hour:Number = DateObj.getHours();
 var minute:Number = DateObj.getMinutes();
 var second:Number = DateObj.getSeconds();
 this.numDisp(hour, 0);
 this.numDisp(minute, 1);
 this.numDisp(second, 2);
 //this.numDisp(18);
 //stop();
};
var keta:Number = 2;
function numDisp(getNum:Number, output:Number):Void {
 var i:Number = 0;
 var maxNum:Number = Math.pow(10, keta) - 1;
 var num:Number = Math.max(Math.min(getNum, maxNum), 0);
 var strNum:String = "0000" + String(num);
 strNum = strNum.substr(strNum.length - keta, keta);
 for (i = 0; i < keta; i++) {
  switch (output) {
   case 0:
   this["numMcHour" + i].gotoAndStop(Number(strNum.charAt(i)) + 1);
   break;
   
   case 1:
   this["numMcMin" + i].gotoAndStop(Number(strNum.charAt(i)) + 1);
   break;
   
   case 2:
   this["numMcSec" + i].gotoAndStop(Number(strNum.charAt(i)) + 1);
   break;
  }
 }
}
ダウンロード

0 件のコメント: