« SWF書き出しで、パスの隙間があると | トップページ | アポロ 対 イカロス? »

2007年2月18日 (日)

圧縮されたSWFの書き出し

Flash SWF書き出しの覚書4

SWFではバージョン6以降で圧縮をサポートした模様。

SWFバージョン8の仕様書p.17に軽く説明があるだけだが、ZLIBを使って圧縮すべしとのこと。

ポイントは

・ファイルの頭に書き出す3バイトのシグニチャをFWS(非圧縮)からCWS(圧縮あり)にかえる
・ヘッダ部のFileLengthは、『圧縮前のファイルサイズ』を書き込む
・FileLengthの直後(先頭から8バイト目移行)から圧縮する


さっそくJavaで実装してみた。
最初に試した標準ライブラリのGZIPOutputStreamではうまくいかないが、同じく標準ライブラリのjava.util.zip.DeflaterOutputStreamで書き出してみたところ無事FlashPlayerで再生が可能になった。

恐ろしくサックリ動いたがこれで良いのかな?恐るべしJavaの標準ライブラリ。

2月 18, 2007 Java, SWF書き出し | このエントリーを含むはてなブックマーク

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/130974/13948775

この記事へのトラックバック一覧です: 圧縮されたSWFの書き出し:

コメント

コメントを書く