このflash講座1234は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです

FLASH講座 ーケータイ(携帯) de FLASHー
携帯編
(2) FlashLite でストップウオッチ&タイマー

 2回目のflash講座は、ストップウオッチとタイマーで、これらを同一画面で、ボタン操作により切り替えて使えるようにしました。 今回は、FlashLite2.0 対応のスクリプトの受講です。
SAMPLE
左のSAMPLEは、FLASH7でパブリッシュしたものを表示している。
FlashLite2.0の場合と、スクリプト的にはほとんど変わらないが、以下に、FlashLite2.0対応のスクリプトを示す。

携帯用SAMPLE(swfファイル)は、flash講座 de syanari にあります。


      flashede.syanari.comのQR-Code

ステージの準備(サイズ:240×240、背景色:黒、12FPS)
パブリッシュ設定は、(1)デジタル時計で記述したとおり。
ステージの準備
●ストップウオッチ、タイマー選択ボタン背景として、ステージ上部に矩形を2つ横に並べる
●それぞれの矩形の上にダイナミックテキストボックスを置き、STWatch、Timerと書きインスタンス名を同名にセットする
●さらにそれぞれの矩形上部に同サイズの塗りが赤の矩形のシンボルを配置し、インスタンス名をそれぞれsc1、sc2とする(実際のボタンとして働き、クリック時にボタンが赤くなり、選択されていることが分かるようにする)
●タイマー時間設定用として、ダイナミックテキストを三つ配置する。(Sample参照)
 文字表示として「タイマー設定」(インスタンス名:timerset)、「分に設定する」(timeset)、数字入力ボックス(setTime)
 数字入力(setTime)ボックスだけに「テキストの周囲にボーダーを表示」にチェックを入れる
●その下に、時間表示用のダイナミックテキストボックス(time)を置き、背景にグラデーション塗りの矩形を描く(好みで)
●更に、ボタンインスタンス(ロールオーバーで青色グラデーション)を横に二つ並べ、インスタンス名を、start_btn、clear_btnとし、それぞれの上にテキストボックスをおいて、Start、Clearと書き入れる。 Startボタンは、ダイナミックとし、インスタンス名を st_txt とする(クリックで Stop と字を入れ替える)
●最下部に、メッセージ表示用ダイナミックテキストボックス(msg)を配置する
FlashLite2.0用スクリプト
fscommand2("FullScreen", true);
var n = 0;
timerset.textColor = 0x000000;
timeset.textColor = 0x000000;
setTime._visible = false;
sc1._alpha = sc2._alpha=0;
sc1.onRollOver = function() {
  stwatch.textColor = 0xff0000;
};
sc1.onRollOut = function() {
  stwatch.textColor = 0x000000;
};
sc2.onRollOver = function() {
  timer.textColor = 0xff0000;
};
sc2.onRollOut = function() {
  timer.textColor = 0x000000;
};
sc1.onRelease = function() {
  this._alpha = 40;
  sc2._alpha = 0;
  timerset.textColor = 0x000000;
  timeset.textColor = 0x000000;
  setTime._visible = false;
  goStopWatch();
};
sc2.onRelease = function() {
  this._alpha = 40;
  sc1._alpha = 0;
  timerset.textColor = 0xffffff;
  timeset.textColor = 0xffffff;
  setTime._visible = true;
  goTimer();
};
function goStopWatch() {
  time.text = "00:00:00:00";
  var msp = 0;
  start_btn.onRelease = function() {
    if (n == 0) {
      ms0 = getTimer();
      setOn = true;
      n = 1;
      st_txt.text = "Stop";
    } else {
      setOn = false;
      msp = ms*10;
      n = 0;
      st_txt.text = "Start";
    }
      };
  clear_btn.onRelease = function() {
    setOn = false;
    ms = 0;
    msp = 0;
    n = 0;
    st_txt.text = "Start";
    time.text = "00:00:00:00";
  };
  _root.onEnterFrame = function() {
    if (setOn) {
      ms = (getTimer()-ms0+msp)/10;
      hr = Math.floor(ms/100/60/60%60);
      mn = Math.floor(ms/100/60%60);
      sc = Math.floor(ms/100%60);
      ml = Math.floor(ms%100);
      if (sc<10) {
        sc = "0"+sc;
      }
      if (mn<10) {
        mn = "0"+mn;
      }
      if (hr<10) {
        hr = "0"+hr;
      }
      if (ml<10) {
        ml = "0"+ml;
      }
      time.text = hr+":"+mn+":"+sc+":"+ml;
    }
  };
}
function goTimer() {
  type = fscommand2
    ("SetInputTextType", "char", "Numeric");
  setTime.onSetFocus = function() {
    this.backgroundColor = 0x33ff66;
  };
  setTime.onKillFocus = function() {
    this.backgroundColor = 0xffffff;
  };
  setTime.onChanged = function() {
    t = this.text;
    mt = t*60*1000;
    hr = Math.floor(t/60);
    mn = Math.floor(t%60);
    if (hr<10) {
      hr = "0"+hr;
    }
    if (mn<10) {
      mn = "0"+mn;
    }
    if (t) {
      if (hr>0) {
        time.text = hr+":"+mn+":"+"00"+":"+"00";
      } else {
        time.text = mn+":"+"00"+":"+"00";
      }
    }
  };
  start_btn.onRelease = function() {
    if (!t) {
      msg.text = "時間がセットされていません";
    } else {
      ms0 = getTimer();
      timerOn = true;
      st_txt.text = "";
    }
  };
  clear_btn.onRelease = function() {
    timerOn = false;
    ms = 0;
    time.text = "00:00:00";
    t = 0;
    setTime.text = "";
    msg.text = "";
    st_txt.text = "Start";
  };
  _root.onEnterFrame = function() {
    if (timerOn) {
     ms = (mt-(getTimer()-ms0))/10;
     if (ms>0) {
       hr = Math.floor(ms/100/60/60%60);
        mn = Math.floor(ms/100/60%60);
        sc = Math.floor(ms/100%60);
        ml = Math.floor(ms%100);
        if (hr<10) {
          hr = "0"+hr;
        }
        if (mn<10) {
          mn = "0"+mn;
        }
        if (sc<10) {
          sc = "0"+sc;
        }
        if (ml<10) {
          ml = "0"+ml;
        }
        if (hr>0) {
          time.text = hr+":"+mn+":"+sc+":"+ml;
        } else {
          time.text = mn+":"+sc+":"+ml;
        }
      } else {
        ms = 0;
        t = "";
        time.text = "00:00:00";
        msg.text = "時間になりました";
      }
    }
  };
}

startボタンのon/off用 n の初期化
「タイマー設定」を消す(背景と同じ色)
「分に設定する」を消す
ボックスsetTimeを消す
stWatch,Timer選択用矩形を消す
sc1ロールオーバーで
文字を赤にする


ロールアウトしたら黒に









sc1がリリースされたら
アルファを40に
sc2はアルファ0(赤い着色を消す)
「タイマー設定」を消す(背景と同じ色)
「分に設定する」を消す
ボックスsetTimeを消す
関数goStopWatchを実行

sc2がリリースされたら
アルファを40に
sc1を消す
「タイマー設定」を表示(白)
「分に設定する」を表示
ボックスsetTimeを表示
goTimerへ

ストップウオッチ
ボックスtimeに"00:00:00:00"を表示
mspはラップ用変数
startボタンが押されたら
nが0なら(初めてかstopが押された後なら)
ムービー開始後の時間取得
setOnをtrueに
nを1に
ボタン表示をStopに

そうでなければ(nが1なら)
setOnをfalseに

nを0に
ボタン表示をStartに戻す


Clearボタンが押されたら
setOnをfalseに
経過時間(total)を0に
ラップ時間を0に
nを0に
ボタン表示をStartに戻す
時間表示を0に戻す


フレームアクション
もし、sewtOn がtrueなら
経過時間を、ミリ秒を1/100秒に変換して計算
時間


1/100秒

1桁だったら0を前に















タイマー

インプットを数字モードに
setTimeにフォーカスが当たったら
背景色を緑色に


フォーカスが去ったら
背景色を白に

setTimeが変更されたら(インプットされたら)
その文字列を t と置く
t をミリ秒に変換
時間部分を計算
分部分を計算







もし t がセットされていたら
もし1時間以上なら
ボックスtimeに時間と分を表示
そうでなければ(60分以下)
分を表示



Startボタンが押されたら
もし t がセットされていなければ
メッセージボックスに表示
そうでなければ
経過時間取得
timerOnをtrueに
Startボタンの文字表示を消す


Clearボタンが押されたら
timerOnをfalseに
msを0に
ボックスtimeの表示
tを0に
ボックスsetTimeの表示をキャンセル
メッセージボックスのメッセージをキャンセル
Startボタンの文字表示をStartに



もし、timerOnがtrueなら
残り時間の計算
msが正なら
時間


1/100秒














時間部分があれば
残り時間の表示
時間部分が無ければ
残り時間の表示

そうでなければ
msくぉ0に
t をキャンセル
時間表示を0に
メッセージの表示
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 このサイトで使用しましたflashソフトはflash mx 2004年版(Flash Japan)- flash8 及び FlashCS3-2007年版です。
 flash講座(フラッシュ講座)は、Yoshioka氏(通称、ひげ親父)による制作です。 コツコツと作られたflash素材(flashアニメ、スクリプト)はユーザーの方により保存変更され動画flash(動画フラッシュ)や携帯flash(待受flash)として利用されて来ました。
 氏は、flashスクリプトについての学習を、パソコン塾講師活躍中に始められ、独立した今も続けておられます。 
  macromedia flashソフトは新しくadobe flash時代に入りましたので、これを機会にflash学習サイトを「flash講座1234」としてリニューアルいたしました。 引き続きご愛顧承りますよう、よろしくお願いいたします。                                                                           (by Hiraoka)
HOME   Flash講座総リスト     ケータイ de FLASH 携帯編(3)