0

Android タブレット @ 仕事用のアプリを開発しています。画像と外部 SWF ファイルを定期的にロードする必要があります。

問題は、(ローダー クラスを使用して) I/O が発生している間、UI のフレーム レートが非常に急激に低下することです (実際には、UI が 0.5 秒から 1 秒にフリーズしているように見えます)。AS3、Flash、AIR について理解しているように、ロードは非同期であるはずですが、そうは感じません。

このスローダウンは非常に煩わしいので、(AJAX アプリケーションのような) "読み込み中アイコン" 付きのムービークリップを配置しても、読み込みが終了するまでアニメーション化せずにそこにとどまります (そのアイコンはもう必要ありません)。

誰かがこの問題について来ましたか? この問題を解決する方法、または少なくとも最小限に抑える方法はありますか?

前もって感謝します!

4

2 に答える 2

1

デフォルトでは、 を使用しLoaderて PNG または JPEG 画像をロードする場合、画像データは使用時にのみデコードされます。これはメイン スレッドで発生し、読み込まれた画像からビットマップまたはテクスチャを作成するときに UI が途切れる可能性があります。

画像デコード ポリシー フラグを に設定すると役立つ場合がありますON_LOAD。これにより、ローダーのバックグラウンド スレッドで画像がデコードされます。

import flash.system.ImageDecodingPolicy;

...

loaderContext.imageDecodingPolicy = ImageDecodingPolicy.ON_LOAD;
loader.load(url, loaderContext);

このトピックの詳細については、LoaderContext ドキュメントを参照してください。ON_LOADより多くのメモリを使用する可能性があるドキュメントの状態。

さらに、Stage3D (Starling、Away3D など) を使用している場合、実際にはテクスチャのアップロードに時間がかかっている可能性があります。GPU の最適化はまったく別の問題ですが、 Starling Performance Optimization wikiで少し調べることができます。簡単に言えば、1) テクスチャをすべて一度にアップロードする (ロード画面中など)、2) テクスチャをアトラスにバッチ処理する、3) Adob​​e ATF ツールを使用してテクスチャを圧縮することもできます。アップロードが速くなり、GPU メモリの使用量が少なくなります。詳細を知りたい場合はお知らせください。

于 2013-05-28T03:53:38.507 に答える
0

同時実行には、ActionScript ワーカーを使用します。 http://www.bytearray.org/?p=4423

于 2012-10-19T09:12:13.293 に答える