私のアプリケーションは、いくつかのグループを持つウィンドウを作成します。ウィンドウが閉じられると、ウィンドウとその子孫は GC によって収集されません。
Flash Builder Profiler は、イベント リスナーを見つけて削除するのに役立ちました。これは、 のライブラリ コードから追加されたイベント リスナーを示しているためですWindow.as
。
具体的には、ウィンドウを開く前とウィンドウを閉じた後の徘徊オブジェクトを比較し、MyWin
クラス (1 つのインスタンス)を選択します。
MyPackageName.MyWin (10 パス)
10x 次の行:
関数 [savedThis] 569222 GCRoot:はい バイト:308
メソッドパネルの各「関数」をクリックすると、各「関数」の上部に次の 10 が表示されます。
spark.components:Window:creationCompleteHandler() Window.as line 2610
spark.components:Window:creationCompleteHandler() Window.as line 2613
spark.components:Window:creationCompleteHandler() Window.as line 2616
spark.components:Window:creationCompleteHandler() Window.as line 2619
spark.components:Window:creationCompleteHandler() Window.as line 2625
spark.components:Window:creationCompleteHandler() Window.as line 2639
spark.components:Window:creationCompleteHandler() Window.as line 2636
Spark.components.supportClasses:SkinnableComponent:attachSkin() SkinnableComponent.as line 694
Spark.components:SkinnableContainer:partAdded() SkinnableContainter.as line 959
Spark.components:SkinnableContainer:partAdded() SkinnableContainter.as line 957
これらはすべて、何らかの方法で MyWin.initialize() から呼び出されます。
コードによって作成されたすべてのイベント リスナーを削除し、すべての遷移を削除しました。しかし、これの意味をまだ理解できず、ウィンドウをどのように処分できますか。私は数日間苦労しているので、どんな助けでも大歓迎です。