flex イベントの監視と発生時の挙動とイベントの強制発生
2011/08/17
頻繁に使う「イベントの監視と発生時に実行する関数」と「無理矢理イベントを発生させる関数」。
イベント発生時の挙動(addEventListener)
[対象].addEventListener([イベント], [関数]);
※[対象]に[イベント]が発生するか監視する。さらに発生後、[関数]を実行。
※[対象]に[イベント]が発生するか監視する。さらに発生後、[関数]を実行。
例えば、「dataGrid」のidが「rcn」とする。
その「id=rcn」で「イベント:列をクリック(選択)した」ときに「recatnap」という関数を実行とするなら下記のようになる。
rcn.addEventListener(GridSelectionEvent.SELECTION_CHANGE, recatnap);
後述の「dispatchEvent」での絡みでイベントは適当な名前をつけることもできる。
そのときはイベント名を「"」でくくってあげる。
例えば、「dataGrid」のidが「rcn」とする。
その「id=rcn」で「イベント:tips」が発生したときに「recatnap」という関数を実行とするなら下記のようになる。
rcn.addEventListener("tips", recatnap);
イベントの強制発生(dispatchEvent)
[対象].dispatchEvent([イベント]);
※[対象]で[イベント]が発生したことにする。
※[対象]で[イベント]が発生したことにする。
例えば、「dataGrid」のidが「rcn」とする。
その「id=rcn」で「イベント:列をクリック(選択)した」ことにするなら下記のようになる。
rcn.dispatchEvent(GridSelectionEvent.SELECTION_CHANGE);
※この例えだと訳わかんない。まぁ、ボタンがあって「ボタンをクリックしたことにする」とかで使える。
※この例えだと訳わかんない。まぁ、ボタンがあって「ボタンをクリックしたことにする」とかで使える。
イベントは適当な名前にできる。
※この場合だとそのイベントの発生を監視する何かが必要。「Application」タグ内で「creationComplete」で関数を作ってそこで「addEventListener」で監視しておくとか。
例えば、「dataGrid」のidが「rcn」とする。
その「id=rcn」で「イベント:tips」を発生したことにするなら下記のようになる。
rcn.dispatchEvent("tips");