1

現在、AS3/Flash Web (ブラウザー) アプリ (FP11+) を最適化しようとしています。これは、(Greensock の) SWFLoader を介してリモートで環境/背景グラフィックを読み込み、それらをビットマップとして追加する、完全なブラウザー ウィンドウ フラッシュ アプリです (ダウンロード時間は問題になりません)。ボタン、アニメーションの処理/読み込み、ウィンドウ、UI 要素などのその他のマイナーなグラフィックは、AS3 グラフィック API を使用して描画されます。

Flash アプリ内で表示するために追加の swfs をロードするときに、FPS の問題 (ターゲットは 40) に遭遇します (ロードされた SWF がアニメーション化されてゼロに低下すると、FPS は大きく変化します)。平均 MB 使用量は 50 ~ 100MB です (FlashProfiler で報告)。

私の質問は次のとおりです。リモートでロードされたグラフィックスや描画されたグラフィックスにローカル スプライトシートを使用すると、パフォーマンスが大幅に向上しますか?

次に、Starling は処理とアニメーションに GPU を使用するため、アプリを Starling を使用するように変換すると、パフォーマンスが大幅に向上しますか?

それとも、ループ、リスト/ベクター、およびデータ使用のパフォーマンスを最大化することに集中していませんか? これに関して、配列/リストとベクトルの使用、および foreach とコレクション固有の関数 (フィルター、マップなど) の使用について、さまざまな意見を読みました。これらの手法を直接比較した経験も役に立ちます。

ありがとう!

4

1 に答える 1

1

Starling は、高速化のために GPU を搭載したコンピューターまたはデバイスに表示するビットマップ アセットが多数ある場合に非常に役立ちます。Starling を使用する場合、さまざまな画像をスプライト シートに配置して、GPU が実行する必要のある描画呼び出しの数を削減することで、パフォーマンスを向上させることができます。

そのため、多数の画像に加えて多数の回転またはスケーリングを行うと、GPU の長所が十分に活用されます。ベクトル グラフィックやその他のキャンバス タイプの操作などを継続的に再描画している場合、Starling はおそらくあまり役​​に立ちません。また、サポートされていない GPU を搭載したコンピューターでも役に立ちません。

ビットマップとレンダリングの決定を行った後、実際の AS3 コードの最適化はプロファイラーで行う必要があります。

于 2013-01-03T18:16:52.743 に答える