0

1440 のベクトル三角形、または必要に応じてスライスで構成されるフル スペクトル カラー ホイール スプライト オブジェクトを作成しました。

カラー ホイールをアニメートしたいので、表示オブジェクトの cacheAsBitmap プロパティを有効にしました。ただし、ベクターをビットマップとしてキャッシュしても、アニメーション中のパフォーマンスは向上しません。アニメーションは遅く、不安定なままです。

カラー ホイールの PNG スクリーンショットを可逆圧縮でライブラリにインポートし、それをスプライトに変換し、この新しい画像アセットを回転させると、アニメーション中に優れたパフォーマンスが発揮されます。

圧縮されていない PNG 画像アセットのインポートが、cacheAsBitmap プロパティが true に設定された同じベクター画像を実行するのはなぜですか?

4

1 に答える 1

6

オブジェクトを回転するたびに、新しいビットマップを再計算する必要があるためです。

cacheAsBitmap回転ではなく、平行移動されるオブジェクトのみを対象としています。ドキュメントから:

cacheAsBitmap プロパティは、ほとんどが静的なコンテンツであり、スケーリングや回転が頻繁に行われないムービー クリップで使用するのが最適です。このようなムービー クリップでは、ムービー クリップが変換されるとき (x と y の位置が変更されるとき)、cacheAsBitmap によってパフォーマンスが向上する可能性があります。

これは、キャッシュされたビットマップがピクセル単位で表示面に直接コピーされるためです (速度のため、これはblittingと呼ばれます)。レンダリングされるたびにビットマップに変換を適用するのは、たまにしか回転しないオブジェクトにとってばかげています。変換が適用される場合にのみビットマップを再計算することは、変換以外の変換が頻繁に行われない最も一般的なケースでパフォーマンスを向上させる設計上の決定です。

于 2011-03-14T01:21:39.097 に答える