0

あるイベントをディスパッチするオブジェクトがあり、このオブジェクトがこのイベントに対して何らかのアクションを実行する必要があるとします。このイベントをキャッチする正しい方法は何ですか?オブジェクトでこのイベントを直接聞くことはできますか、それともこのイベントをEventMapを通過させる必要がありますか?
例:フォーム付きのポップアップウィンドウがあります。フォームを送信したら、リモートサーバーにリクエストを送信して、このポップアップを閉じます。カスタムイベントをEventMapにディスパッチせずに、クリック時にポップアップを閉じることを実行することは、イデオロギー的に正しいですか?ありがとう。

4

2 に答える 2

2

個人的には、ビューやポップアップなどの作成を担当するオブジェクトが、それらの破棄も担当する必要があることを好みます。そして、私はいくつかのクロスアプリケーションタスク、特にクライアントサーバー通信を解決するためだけにMateを使用することを好みます。そのため、コンポーネントレベルでプレーンな古いActionScriptイベント処理を使用することを好みます。また、一部のコンポーネントがポップアップウィンドウを作成した場合、送信イベントをリッスンしてポップアップを破棄できます。

ポップアップがMate自体によって作成された場合の別のケース(つまり、イベントマップ)。この場合、いくつかの送信イベントを処理し、サーバーへの要求を実行してウィンドウを一度に破棄するMateハンドラーでウィンドウを破棄しても問題はありません。

ただし、とにかく、単純なルールを使用してMateイベント(つまり、イベントマップによって処理されるイベント)をディスパッチする必要があります。一部の低レベルイベントをディスパッチしないでください。それらを、対応するアプリケーションレベルのビジネスロジックを反映するイベントに変換する必要があります。あなたの場合、サーバーのリクエストとウィンドウのクローズという2つの操作としてフォームを送信することを検討するべきではありません。ウィンドウの観点からは、フォームの送信だけであり、サーバー要求があるか、SharedObjectから、またはある種のモデルからでもデータを読み取るかどうかはウィンドウが気にする必要はありません。したがって、windowは送信イベントをディスパッチする必要があり、Mateマップはこのイベントを処理し、同じハンドラーでリクエストとウィンドウ破棄を生成する必要があります。このようにして、ビューがポップアップ表示されているのか、ネイティブAIRウィンドウ内にあるのかを知らなくてもビューを使用できます。Mateのイベントマップを調整するだけです。

また、メイトのマップは階層化できることを忘れないでください。したがって、ビジネスロジックのイベントの処理レベルを分割できます。

于 2011-04-26T11:54:31.817 に答える
1

はい、それは正しいです。イベントの主な目的は、何かが行われた/変更されたことを外部/親に通知するためです。

于 2011-04-26T10:25:44.533 に答える