メイン ActionScript 3.0 特設会議室 イベトリスナーについて | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kirarin | Åê¹ÆNo.38027 投稿日時: 2008-3-14 16:36 |
職人 居住地: 彩の国 投稿: 214
使用環境:
Windows7 IE 8 Flash CS4 Flash Player WIN 10,0,45,2 ------------------------- WindowsXP Professional SP3 IE7.0 Flash 8 Professional Flash Player 10.0.12.36 ------------------------- Windows2003 Sp1 IE6.0 SP1 Flash MX 2004 ... |
イベトリスナーについて お世話になっております。
kirainです。 AS3のaddEventListenerとremoveEventListenerについて質問です。 サンプルとして以下のようなものを作りました。 MCを1つ配置します。(test_mc) さらに別のMCを2つ用意します。(btn1_mc、btn2_mc) test_mcにclick動作定義したいのですが、 ・btn1_mcを押下したら「test_mcの押下でtrace("A")を実行するようにする」 ・btn2_mcを押下したら「test_mcの押下でtrace("B")を実行するようにする」
これで、どちらかのボタンを押せば、test_mcの押下でA,またはBが出力されますが、traceは一度だけ機能させたいので、trace後にtest_mcに定義さているリスナーを削除させたいと考えています。 リスナーの削除にはそのリスナーの名前を知る必要がありますが、それを調べる方法はないでしょうか。 btn1_mc、btn2_mcを押下したときにどちらを押下したかを管理するようなオブジェクトを用意しなければできないでしょうか。 ※上記サンプルではbtn2_mcまでとなっていますが、実際に扱いたいのはもっと多くリスナーの「xClickHandlerX」という名前もどんどん増えてしまうので、「すべてのリスナを削除」なんてできたら助かるのですが・・・
|
ひろゆき | Åê¹ÆNo.38043 投稿日時: 2008-3-15 3:26 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: イベトリスナーについて よく分かっていませんが。
引用: リスナーの削除にはそのリスナーの名前を知る必要がありますが、それを調べる方法はないでしょうか。
「FF071110 - イベントを制する者、ActionScript 3.0を制す - F-siteセミナー」
|
野中文雄 | Åê¹ÆNo.38048 投稿日時: 2008-3-15 16:28 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: イベントリスナーについて MovieClipインスタンスtest_mcにリスナー関数の参照を、変数として設定しておくことがひとつの方法でしょう。ただ、その呼出された関数自体をイベントリスナーから削除するのでしたら、arguments.calleeプロパティが使えます。
引用: kirarinさんは書きました: |
kirarin | Åê¹ÆNo.38070 投稿日時: 2008-3-17 22:38 |
職人 居住地: 彩の国 投稿: 214
使用環境:
Windows7 IE 8 Flash CS4 Flash Player WIN 10,0,45,2 ------------------------- WindowsXP Professional SP3 IE7.0 Flash 8 Professional Flash Player 10.0.12.36 ------------------------- Windows2003 Sp1 IE6.0 SP1 Flash MX 2004 ... |
Re: イベトリスナーについて お返事遅くなりました。
ひろゆきさん、ありがとうございます。 xClickHandler1とxClickHandler2に、トレースを追加してみましたが、結果はどちらも以下の通りでした。 trace(event.currentTarget)の結果 [object SimpleButton] trace(event.currentTarget.name)の結果 test_mc リスナーを登録したMCの名称をとることができました。 リスナーの削除には、野中さんからアドバスいただきました、arguments.calleeプロパティでできました。 情報ありがとうございました!
|
kirarin | Åê¹ÆNo.38071 投稿日時: 2008-3-17 22:45 |
職人 居住地: 彩の国 投稿: 214
使用環境:
Windows7 IE 8 Flash CS4 Flash Player WIN 10,0,45,2 ------------------------- WindowsXP Professional SP3 IE7.0 Flash 8 Professional Flash Player 10.0.12.36 ------------------------- Windows2003 Sp1 IE6.0 SP1 Flash MX 2004 ... |
Re: イベントリスナーについて お返事遅くなりました。
野中さん、ありがとうございます。 教えていただいた記述を加えて確認しました。 無事、btn1_mc、btn2_mcでトレース内容を切り替えつつ、またtest_mc1回のクリックでトレースを1回だけ行うことができました! 追加したリスナー関数の名前が分からなくても、event.currentTargetのarguments.calleeで、リスナー削除することができるのですね! まさにこのようなことがしたかったのです! ありがとうございましたm(__)m
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |