« 移動するラベルをリスト管理しよう(その2) | メイン | 山川海(その3) »

山川海(その2)

クラス定義内でのクラスメンバーの参照」で紹介したButtonGroupクラスですが、これってもっと単純なことだと気付いちゃいませんでしたか?
ButtonGroupクラスを次のように書き換えたらどうでしょうか?

buttongroup2.zipのダウンロード


class ButtonGroup {
static var selectedBtn:MovieClip;
//ボタンの選択
static function selectBtn(mc:MovieClip) {
if (selectedBtn != undefined) {
selectedBtn.gotoAndStop("off");
}
mc.gotoAndStop("on");
selectedBtn = mc;
}
}

そして、yamaKawaUmi.flaのフレームアクションはたったこれだけ。これでよくないかな?

yamaBtn.onPress = function() {
ButtonGroup.selectBtn(this.tab);
};
kawaBtn.onPress = function() {
ButtonGroup.selectBtn(this.tab);
};
umiBtn.onPress = function() {
ButtonGroup.selectBtn(this.tab);
};

ここまで単純化できてうれしいー!クラスメンバー万歳!と感じいったところで新たな不満がむくむくと・・・
このButtonGroupクラスだと1つのグループしか管理できないではないですか。Aグループ、Bグループが必要なときは、A_ButtonGroupクラス、B_ButtonGroupクラスと2つのクラス定義が必要になってしまう。
う〜ん、かっこ悪い。やっぱ、こういうときこそインスタンスメンバーの出番なのでは?どうする?

投稿者 oshige : 2005年09月16日 10:51