Retina ディスプレイの今後の波に合わせて既存の SWF を最適化するためにできることはありますか? または、新しい SWF を作成するときに Retina ディスプレイを準備する方法はありますか? 私が見て読んだ限りでは、SWF はかなり貧弱に見えます。
2 に答える
一般に、ビットマップ グラフィックスの使用はできるだけ避けたいと考えています。ベクターとフォントのみを使用している場合、これらは問題なく拡大できます。CPU の強制終了を回避するための秘訣はcacheAsBitmap
、オブジェクトが頻繁に変更されない場合など、可能な限り使用することです。次に、ベクトル grx の解像度の利点が得られ、最初のレンダリング後にビットマップ grx の速度が得られます。
検討を開始するもう 1 つのツールは、Stage3D の使用です。このレイヤーは Air プログラムの背後にあり、堅牢な背景として機能します。本当の利点は、CPU の代わりに GPU を使用することです。つまり、2 つのプロセッサが grx を追い出します。コヒーレントなフォアグラウンド システムとバックグラウンド システムを開発または使用すると、grx のパフォーマンスが向上します。ほぼ準備ができていると思われるツールの 1 つは、Starling 2D です。これは、Stage3D の多くの困難な領域をショートカットするのに役立ちます。私はまだ Stage3D を使用していないので、これは推測の域を出ません。経験を積んだら、回答を編集します。
編集
@TianzhenLin の応答には、かなり良いヒントがいくつかあります。CacheAsBitmapMatrix
回転、スケーリングなどを行うが、構造的には変更しないオブジェクトに使用する必要がある ことを思い出しました。
Flex 4.6 は、さまざまな画面密度に合わせて最適化されたビットマップを提供する方法を提供するMultiDPIBitmapSourceをサポートします。このリンクで詳細な議論を読むことができます。
一般に、ビットマップがアイコン、ロゴ表示として使用され、アニメーションまたは変換が移動、パン、およびクリッピングに制限され、ビットマップがスケーリングされていない場合、最適な表示結果と下降パフォーマンスが得られます。ベクター アセットのパフォーマンスは、この使用法ではビットマップと比較して予測できません。
ただし、ビットマップはすべてのソリューションに対する特効薬ではありません。回転、歪み、またはスケーリング (ズームインおよびズームアウト) を行うとすぐに、パフォーマンスに悪影響を及ぼします。これは、システムがすべてのピクセルを再配置するために、より多くの計算を行う必要があるためです。これは、ベクトルに比べてはるかに複雑です。 .
Stage3D も検討する価値がありますが、主に 2D を使用している場合は、賢明に MultiDPIBitmapSource とベクター グラフィックスのどちらかを選択すると、はるかに簡単なソリューションになる可能性があります。