※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

携帯向けFlashLiteのswfファイルをJavaで編集することになった時のメモです。(07/11/28)

■swfファイルのフォーマット


■あると便利なツール


●swftools
swfdump は、swfファイルの解析を行ってくれるので
作ったswfファイルの検証に使えて便利!

●バイナリエディタ Bz
最終的には、バイナリエディタでゴリゴリやることに(涙)

■Javaでプログラムする際の注意事項


●Javaはビッグエンディアンなので、リトルエンディアンを扱うにはByteBufferを使うと良い。
 #良いという程ではないけど、自分でやるよりはいいかな・・・。

●Javaのシフト演算は、int(4バイト)以上しか扱えないので注意
 byte, short を扱おうとすると、勝手に int に昇格させられてしまう。

[[15.18 シフト演算子>http://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#5121]]

[[5.6.1 単項数値昇格>http://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#170952]]


●byteの配列を数値にするには、BigIntegerが使えそう。
 BigIntegerのコンストラクタが、byteの配列を扱える。
 ただし、4バイト未満のデータを渡すと値がおかしくなる場合があるので
 4バイト(byte[4])を渡すこと。


●レスポンスにswfファイルのデータを返したときに、IEがバイトコードを表示してしまう。
 レスポンスのコンテンツタイプを見てくれていないようだ・・・(;´д⊂)

 response.setContentType("application/x-shockwave-flash");

 URLの拡張子を .swf にしたら解決したけど、、、他に手はないのだろうか、、、