2011-08-11 12 views
0

別のウィンドウアプリケーションでウィンドウサブアプリケーションをロードしようとしていますが、ロードされたアプリケーションを別のアプリケーションに置き換える必要があります。Adob​​e AIRでSWFLoaderを使用しているときにメモリリークが発生する

メインウィンドウアプリケーションのswfLoaderの文書化された方法unloadAndStop()を試しましたが、何らかの理由でメモリプロファイリング中に明示的にガベージコレクションを実行した後でもそのアプリケーションのインスタンスがメモリに保持されていました。

ここで私がそれらのウィンドウアプリケーションをモジュールとして作成し、Moduleloaderを使用してロードしようとすると、スムーズに処理され、アンロードされたモジュールはメモリから削除されます。

誰もが同じ問題に直面しましたか?

+1

なぜあなたはアプリケーション内のアプリケーションをロードするのでしょうか?ポイントは何ですか?代わりにモジュールをロード... –

+0

あなたのSDKのバージョンは何ですか? SDKにメモリリークが存在する可能性があります(bugs.adobe.comを参照)。 –

+0

ご回答いただきありがとうございます。 @J_A_X:Web用に独立して機能する一連のアプリケーションを作成したいと思いますが、AIRの場合は明らかに一緒にパッケージ化されています。より良いメンテナンスのために、コード全体を再利用したいと思います。 – Harshal

答えて

0

まず、アプリケーション内でアプリケーションを読み込む必要があります。あらゆる種類の狂ったことが起こる可能性があります。私は過去にあなたの状況に遭遇しました。私がやったことは、アプリケーションやモジュールのタスクのために私の実際のUI /製品を分けることです。例えば:私はこれで行くよどこあなたが見

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <local:YourMainUI width="100%" height="100%" /> 
</s:Application> 

または

<?xml version="1.0" encoding="utf-8"?> 
<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <local:YourMainUI width="100%" height="100%" /> 
</s:Module> 

?どちらの文脈で使用することができるとあなたは今、あなたの製品のための再利用可能な「メイン」のコンポーネントを持っていてもWindowedApplication 1 :)

関連する問題