SWFの構造要約_ファイル圧縮手順 - hsk/swfspec_ja GitHub Wiki

ファイル圧縮手順

SWF ファイルはネットワーク上に転送されるため、できる限りコンパクトなサイズにまとめる必要があります。 次に挙げるような方法を使って、ファイルサイズを小さく抑えています。

  • ''再利用'' SWF ファイル中のディクショナリに登録された項目は簡単に再利用することができます。 例えば、シェイプ・ボタン・サウンド・フォント・ビットマップなどが再利用可能です。これらは 1 度定義されたものが、至るところで参照されます。

  • ''圧縮'' シェイプは効率的なデルタエンコーディングスキームを使って圧縮されます。 図形を描く時、最初の座標が直前に使用された線の最後の座標を指していることがよくあるため、最後の座標からの相対的な位置として距離が表現されます。

  • ''デフォルト値'' 行列 (matrix) や色変換 (color transform) の構造体のように、あるフィールドが他のフィールドよりも頻繁に使われるというケースがあります。 例えば、行列の最も良く使われるフィールドは "平行移動" です。拡大縮小、回転のフィールドはそれほど使われません。拡大縮小、回転にデフォルト値を使用してこれが省略可能な時はフィールドを含まないようにすることで、ファイルサイズを小さくしています。

  • ''エンコーディングの変更'' 一般的に、 SWF ファイルは状態の変更部分のみを保存しています。 これは表示リストの中で、シェイプデータ構造体の、配置-移動-削除 のモデルに使われています。

  • ''シェイプデータ構造体'' シェイプデータ構造体は、サイズを小さくしたり、アンチエイリアスを適用した画像を効率よくレンダリングするためにユニークな構造を採用しています。

移動