・ViewStack を使って画面を切替えている際に、
画面数が増えてきてパフォーマンスが悪くなるという現象が発生した。
・ViewStack を使った画面切り替えでは、一つの swf の中で切り替わる画面が生成されます。表示されていない画面は、最初インスタンス化されていませんが、一度表示されインスタンスが作られると、以降メモリーに残ります。画面数が多いアプリケーションですと、画面を開くたびに新たにインスタンスが生成され、徐々にメモリを消費するとともに、アプリケーションの処理速度も遅くなってきます。
この問題を対処するための一つのアイデアとして、画面切替え時に、以前開いていた画面については、インスタンスを破棄する、ということが考えられます。この方法は、画面が切り替わるたびに毎回必ずインスタンスを生成する必要があるため、画面の切替え速度は遅くなりますが、画面数が増えても、このことが原因でアプリケーション全体の処理速度を落とすという状況を最小限に抑えることができます。
例:
<mx:Button label="sample1" click="t1.destroyAllChildren();t1.createComponent(0, false);" />
<mx:Button label="sample2" click="t1.destroyAllChildren();t1.createComponent(1, false);" />
<mx:Button label="sample3" click="t1.destroyAllChildren();t1.createComponent(2, false);" />
</mx:HBox>
<mx:ViewStack id="t1" width="100%" height="100%" creationPolicy="none" >
<画面1コンポーネント>
<画面2コンポーネント>
: :
</mx:ViewStack>
</mx:Application>
最終更新:2007年01月26日 17:23