2011-10-27 6 views
1

これは最適化手法に関する一般的な質問です。私は多くのコードをライブラリに移動しているので、大部分のコードを書き直しています。Flexナビゲータ.pushビュー遅い

私の懸念事項は、CPU /メモリフットプリントを削減したメソッドを使用しているため、ビュー内でパフォーマンスが速くなるため、パフォーマンスを向上させるほどには当てはまりません。

私が持っている問題が遅いようだnavigator.pushViewであり、私はビューのcreationCompleteに私のinit関数を呼び出して行いますが、私はそれはとても織り込ま持っている私のinitは次のようになります。

private function init() : void { 
    doStuff1(); 
    doStuff2(); 
    doStuff3(); 
} 

何私がすることができますビューの遷移をスムーズにするにはどうすればよいですか?これはモバイルデバイス上にあります。

私は、タイマを使ってinit関数内のすべてのコードを遅らせることを考えました。最初の3秒は何も起こらず、ビューには必要なすべてのフレームがありますが、それは正しくないようです。

アドバイスをいただければ幸いです!

答えて

3

パフォーマンスは本当にあなたがそれらの「doStuff()」メソッドでやっていることに依存して、ありがとうございます。考慮すべきいくつか:

1)creationComplete()が実行されるときに、ビューはすでに1回レンダリングされています。物事が再び自分自身をレンダリングさせる何かをしていますか?子コンポーネントのスタイル、および多くのプロパティを変更すると、その子は再レンダリングされ、多くの場合、ビューコンポーネントが再描画されます。

実際にコンストラクタスタイルのコードを置くのが最悪の場所である場合、多くの人がcreationCompleteをコンストラクタとして使用します。その代わりに、ほとんどの要素に対して事前初期化を使用することを検討するか、子コンポーネントにプロパティを設定する必要がある場合は初期化する必要があります。

2)viewActivateは、遷移が発生した後に実行されます。したがって、コードをcreationCompleteからviewActivateに移動することを検討する必要があります。 mobile view's lifecycleの詳細はこちらです。

+0

viewActivateそれかもしれません!私はそれを試してみる - 情報に感謝 - 本当に非常に感謝! –

+0

私もネストの問題がありました!ネストしたグループがたくさんあります(skinnableコンテナ/ vgroup、hgroupなど)。 –

+0

パフォーマンスのために、できるだけ少ない容器を使用することをお勧めします。あなたが使っているグループごとに。それはあなたが走らなければならない別のレイアウトアルゴリズムです。 – JeffryHouser

関連する問題