Action Script 1度押されたボタンを無効にする
サンプル

沢山のボタンがある場合「どのボタンを押したんだろ?」
と、ならないように1度押されたボタンを無効にしてやる方法です。
無効にする処理はボタンをMC内1フレに入れておきクリックされたら2フレのグラフィックを表示させます。
他のボタンが押されたらActionScriptでそのMC内の1フレを表示させてボタンが復帰します。
但し、この方法のほかにも幾つか方法がありますのでこれがベストとは申しません。
以下がMCのボタンに記述するScriptです。

on (release) {
_root.reset.re();
this.nextFrame();
getURL ("1.htm", "main");
}

on (release)ボタンがクリック>リリースされると
_root.reset.re();はRESETと書いてあるMCのクリップアクションに記述されたfunctionを実行します。

MC resetのクリップアクション
onClipEvent (load) {
function re () {
for (i=1; i<=10; i++) {
eval("_root.b"+i).gotoAndStop(1);
}
}
}


onClipEvent (load)ではボタンアクションから呼ばれるファンクションを定義します。
function re ()は1から10までのボタンを全て復帰させます。
Sampleではボタンは10個あり全て個々のMC内に入れてあります。
MCのインスタンス名はb1からb10まででfor文により10個のMC内のフレームを1フレに移動させます。
※初めてボタンが押された時も実行されますが、もちろん見た目の変化は起こりません。

this.nextFrame();は初期状態ではMC内の1フレのボタンが表示されていますがこの処理で 2フレにあるグラフィックが表示されます。

この方法ではボタンを復帰させるとき無効になっていないボタンにまで処理を行うので無駄なような感じでしょうがScriptの実行速度は速いのでこれもありだと思っています。
別の方法としてはどれかボタンを押したらそのボタンのステータスを変数に入れておき別のボタンを押したときにそのステータスを参照してリセットする等あります。


(c)2004 Tsuruji Studio
Click here to visit our sponsor