意外と知らないActionScriptのイベントにまつわる3つの小技
2008年11月21日 - doke
すっごく地味だけどたまに便利で、時にはつかいどころを考えないといけないようなミニTipsをいくつか紹介します。
その1:traceをハンドラとしてセット
dispatchEvent( MouseEvent.CLICK, trace );
追記:ネタ元がにとよんさんとこだったのを思い出した →addEventListener のハンドラに trace - てっく煮ブログ
デバッグ用の空イベントハンドラとかが無駄に増えるとき、直接traceをハンドラの代わりにイベントに登録します。
同じターゲットに同じイベントハンドラをいくつも登録できるので、既存のコードを汚すことはありません。1行でコメントアウトもしやすいです。
その2:イベントのパイプ
_btnClose.dispatchEvent( MouseEvent.CLICK, dispatchEvent );
これは使う時点であまりスマートではないのですが、GUIをつくりこんでいくと、イベントを伝播するだけのメソッドが多くなったりするので、
そういう時はボタンのイベントをそのまま受け流すようにコンテナ側のdispatchEventそのものを登録すると便利です。
その3:イベントハンドラをメソッドと共有する
_btnClose.dispatchEvent( MouseEvent.CLICK, closeWindow ); private function closeWindow( e:MouseEvent = null ){ // OK } closeWindow(); // OK
引数の初期値をnullにすると引数がある場合とない場合に対応できるため、
イベントハンドラとしてもメソッドしてもつかえるメソッドが用意できます。
ただし、設計的に本来いらない引数を定義しているのは気持ち悪いです。本当は多少冗長でも、イベントハンドラ経由でcloseWindowを呼ぶべきでしょう。
今回は軽めにこの辺で。
- 本城直季風のムービーをFlashで利用したい!
- ガイドレイヤーに記述したフレームスクリプトの落とし穴
- [Flex]カスタムコンポーネントのカスタムイベントをMXML内でリスナー登録する方法
- FlashCS4で書き出されたswcファイルは、フレームスクリプトが実行されない?
- Flashで光の表現/BitmapDataを使って増幅させる
- Image.source に入れた画像のサイズを取るには
- 【Flex】ComboBoxとMenuを組み合わせて多段プルダウンメニューを作ってみました
- 「Flasher 100の質問」に答えてみた。
- Flex プロジェクト と ActionScript プロジェクト
- 「Flasher 100の質問」に答えてみた。
- AfterEffects
- AIR
- android
- Arduino
- AS2
- AS3
- as3
- BitmapData
- CHECKMATE
- crossdomain
- CS4
- Date
- DisplacementMapFilter
- Event
- event
- ExternalInterface
- FileReference
- FireBug
- FireFox
- Flash Lite
- FlashDevelop
- FlashPlayer10
- flash時計
- Flex
- Font
- GoogleMapsAPI
- INFINITY TANK BATTLE
- JSFL
- JSON
- Mobile
- mxp
- PaperVision3D
- Particle
- Progression
- Sound
- TextField
- Tips
- tool
- trace
- wonderfl
- Wonderfl
- xml
- アニメーション
- サンプルコード
- タイムライン
- デバッガ
- バグ
- フレーム
- ブログパーツ
- 爆速








