flex事件処理の秘密


Adobe公式は三つのイベント処理の仕組みを提供しています。
  • MXMLにイベントハンドラ
  • を登録する。
  • MXML定義にオンラインイベント処理プログラム
  • を作成する。
  • イベントモニタ
  • は、アクションScriptにより登録されている。
    詳細は:
    http://www.adobe.com/cn/devnet/flex/quickstart/handling_events/
    実は上の3つの処理メカニズムは原理的には一つの方法で処理されています。
    採用しています  アクションScript登録イベントモニターという最も原始的な方法は、他の方法は全部そのバリエーションです。
    例えば:
    
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    
    <mx:Script>
    <![CDATA[
    	private function clickHandler(event:MouseEvent):void {
    		// do something...
    	}
    ]]>
    </mx:Script>
    
    	<mx:Button label="button" click="clickHandler(event)"/>
    </mx:Application>
    
    上記の方法はMXMLにイベントハンドラを登録してイベントを処理します。コンパイルするとmxmlファイルはasファイルを生成します。上のイベントハンドラを下記のように修正します。
    
    public function __test_Button1_click(event:MouseEvent):void {
         clickHandler(event);
    }
    
    カスタムのコールバック関数をflex内の本格的なコールバック関数に入れて処理し、イベントオブジェクトを転送します。test_Button 1_clickは本当にコールバック関数です。