複雑な UI (Flex 3.6 で構築) を持つ大きなアプリケーションがあります。多くのネストされたコンポーネントがあり、それらのほとんどにはイベント リスナーまたはバインディング セッターがあります。構造は次のようなものです。
- Client View
- Portfolio View
- Personal data
- etc. etc.
- Manager view
- etc. etc.
クライアントビューを破棄して再初期化する必要がある場合があります。私がしているのは、コンテナから削除することです。しかし、メモリが正しくガベージ コレクションされていないようです (問題は、イベント リスナーとデータ バインディングの存在です)。
本やフォーラムを読んで、この状況を管理する最善の方法は、オブジェクトの破棄時にデータ バインディングとイベント リスナーを削除することであることがわかりました。しかし、どうすればそれができますか?Client View 階層の最後の子に、それが削除されたことを伝えるのは誰ですか?
「addedToStage」および「removedFromStage」イベント ハンドラを介して実装しました。動作しているように見えましたが、これは一種の回避策です。このイベントは何度も呼び出されるため、レンダリングが遅くなります。
私の質問は次のとおりです。この問題は一般的だと思いますが、より良い解決策はありますか?