アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
ActionScript3.0でサイト制作を行なっています。

マウスイベントのイベントリスナーを複数のボタンに登録する際に、
ループ処理によって登録できないか考えました。

例えば、
menu.buttonHome.addEventListener(MouseEvent.MOUSE_OVER, homeOver);
menu.buttonAbout.addEventListener(MouseEvent.MOUSE_OVER, AboutOver);

上記は違うインスタンスにマウスオーバーのイベントを登録しておりますが、
記述にある「Home」「About」以外は全て共通の書式ですので、この部分だけ文字列を置き換えて処理できないでしょうか?

例えば、配列に「Home」「About」「Contact」のような文字列を格納し、上記イベントリスナーの指定の文字列だけを置き換えるという方法です。


また、上記のような文字列の置き換え以外にイベント処理の記述を簡略化する方法がありましたら是非ご教授ください。

宜しくお願いいたします。

A 回答 (1件)

こんな感じでしょうか↓?



--------------------------------------------------------
var btnArr:Array=new Array("Home","About","Contact");

for (var i:int=0; i<=2; i++) {
menu["button"+btnArr[i]].addEventListener(MouseEvent.MOUSE_OVER, this[btnArr[i]+"Over"]);
}

function HomeOver(evt:MouseEvent):void {
trace("homeです");
}

function AboutOver(evt:MouseEvent):void {
trace("Aboutです");
}

function ContactOver(evt:MouseEvent):void {
trace("Contactです");
}
--------------------------------------------------------

なお上記では 「buttonHome」と「HomeOver」 は 「Home」 で統一しています。
「buttonHome」「homeOver」のままでは無事に動作しません。

Google検索「配列アクセス演算子」
http://www.google.co.jp/search?hl=ja&source=hp&q …
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘の方法でコードを簡略化することができました。

この度はご回答ありがとうございました。

お礼日時:2009/11/02 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!