0

私のフォームの 1 つで、次のコードを使用してメイト リスナーを追加しました。

<mate:Listener type="{DBEvent.Update_Result}" receive="{onUpdateResults(event)}"/>

このフォームをポップアップとして表示しています。何が起こっているかというと、初めて、onUpdateResults メソッドが期待どおりに 1 回だけ実行されたということです。次に、ポップアップを閉じて再度開きました。今回は onUpdateResults メソッドが 2 回呼び出され、次は 4 回というように...

グーグルで調べた後、ポップアップを削除/閉じても、メイトリスナーがまだアクティブであることがわかりました。弱い参照を試してみたり、PopupManager.RemovePopup などを使用してポップアップを閉じたりしました。何も機能しませんでした。

次に、アクション スクリプトを使用して手動でメイト リスナーを登録および登録解除することを考えました。だから、私は次のコードを試しました

var _listener:Listener= new Listener();

_listener.addEventListener(DBEvent.Update_Result,onUpdateResults);

登録を解除するには...

_listener.removeEventListener(DBEvent.Update_Result,onUpdateResults);

しかし、これも機能していません。

誰かがこの問題を解決するのを手伝ってください。

4

1 に答える 1

0

これを試して。

メイン アプリケーションでランタイム ポップアップ ウィンドウを作成します。

PopUpManager.createPopUp(this, MyPopUp, true);

MyPopUp - MyPopUp.mxml の mx:TitleWindow MyPopUp.mxml の OnInit にリスナーを追加します。

_listener.addEventListener(DBEvent.Update_Result, onUpdateResults);

任意のボタン (ボタンのクリック イベントまたはいずれか) をクリックしたときにポップアップを閉じます。

PopUpManager.removePopUp(this);
于 2010-11-26T18:36:41.547 に答える