0

私は次の問題に直面しています: - アプリケーションのロード中に複雑な数学を計算する計算があり、かなり長い時間 (約 20 秒) がかかり、CPU がほぼ 100% とアプリケーションで使用されます。凍っているように見えます。これはモバイル アプリケーションであるため、最初の読み込み時間が長くなるというコストが発生しても、これを防ぐ必要がありますが、サード パーティのライブラリ内にあるため、計算コードに直接アクセスすることはできません。

  • 一般的にほとんどの CPU の AIR アプリケーションを防止する方法はありますか?
4

1 に答える 1

3

デスクトップでは、Workers API を使用します。かなり新しいので、AS3 のみのプロジェクトにお勧めします。フレックスを使用する場合は、数か月待つことをお勧めします。Workers はマルチスレッド API であり、UI とワーキング スレッドを作成できます。これはまだ CPU の 100% を使用しますが、 UIスタックしません。開始するためのリンクを次に示します

ただし、モバイルではワーカーを使用できないため、関数を分割して、callLater や setTimeout などの遅延をそこに挿入する必要があります。そのような関数を構成するのは難しいですが、ループがある場合は、 x 反復ごとに callLater メソッドを挿入できます。x と callLater 関数の遅延の両方をパラメータ化して、完全なソリューションを実現できます。callLater が呼び出された後、UI がレンダリングされ、イベントが生成されてキャッチされます。不要な場合は、リスナーを削除するか、優先度の高いハンドラーで伝播を停止してください。必要に応じて、callLater のソース例をループで投稿できます。

于 2012-12-08T02:05:44.037 に答える