
時計のActionScriptを説明します。
今回も時計の時間部分について説明します。
今回はダイナミックテキストを使わない方法です。
前回よりも少々手間はかかりますが、
レイアウトの自由度が増します。
まず、基本となる数字のムービークリップを作ります。

1~10までの各フレームにそれぞれ0~9までの数字を文字で入力します。
右の画像は1フレーム目、「0」です。
前回は文字の種類は「ダイナミックテキスト」でしたが、今回は「静止テキスト」にします。
静止テキストの場合、わざわざ文字の埋め込み設定をする必要はありません。
ActionScript用レイヤーを新しく作り、各フレームに
stop();
と入れておきます。

作った数字のムービークリップを複製しながら、好きなように並べます。
このとき、プロパティでインスタンス名を入れておきましょう。(左画像の赤い丸部分)
半角英数です。
この例では、数字左から、h1、h2、m1、m2、s1、s2のように設定しています。
そして時計本体のActionScriptです。
この例の場合、一番上のレイヤーの1フレーム目に記述しています。
//AcsionScriptここから
//ローカル時間を取得します。
h = fscommand2("GetTimeHours");//時取得
m = fscommand2("GetTimeMinutes");//分取得
s = fscommand2("GetTimeSeconds");//秒取得
if (h<10) {//時が10以下のとき
h1 = 0;//表示する10の位は「0」を変数h1に代入
h2 = substring(h, 1, 1);//時の1文字目を取得し変数h2に代入
if(h2==0){
h2=0;
} else {//時間が11以上のとき
h1 = substring(h, 1, 1);//表示する10の位は時の1文字目を取得
h2 = substring(h, 2, 1);//表示する1の位は時の2文字目を取得
if(h2==0){
h2=0;
}
}
if (m<10) {//以下、分の設定
m1 = 0;
m2 = substring(m, 1, 1);
if(m2==0){m2=0;}
} else {
m1 = substring(m, 1, 1);
m2 = substring(m, 2, 1);
if(m2==0){m2=0;}}
if (s<10) {//以下、秒の設定
s1 = 0;
s2 = substring(s, 1, 1);
if(s2==0){s2=0;}
} else {
s1 = substring(s, 1, 1);
s2 = substring(s, 2, 1);
if(s2==0){s2=0;}
}hh1 = h1+1;//数字ムービークリップはフレーム数より表示する数値がひとつすくないため(たとえば1フレーム目に0)変数h1に1加える
tellTarget ("h1") {
gotoAndStop(../:hh1);//h1というムービークリップの変数hh1のフレームでストップ
}
//以下同様
hh2 = h2+1;
tellTarget ("h2") {
gotoAndStop(../:hh2);
}
mm1 =m1+1;
tellTarget ("m1") {
gotoAndStop(../:mm1);
}
mm2 = m2+1;
tellTarget ("m2") {
gotoAndStop(../:mm2);
}
ss1 = s1+1;
tellTarget ("s1") {
gotoAndStop(../:ss1);
}
ss2 = s2+1;
tellTarget ("s2") {
gotoAndStop(../:ss2);
}
//ActionScriptここまで
ちょっと長くて分かりづらいでしょうか?
これで時間が表示されるはずです。