このflash講座1234は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです![]() |
||
FLASH講座 ーケータイ(携帯) de FLASHー
|
||
| 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に メッセージの表示 |
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
|
||
| HOME Flash講座総リスト ケータイ de FLASH 携帯編(3) | ||
![]()