FLASHを動的に生成してみたくなって、swfmillを使ってみた


ユーザーが選んだ画像を用いてFLASHを生成とか、ユーザーが選んだ色を使って待ちうけ作成とか、何かアクションがあってそれを元にFLASHを生成したくなる時ってありますよね。
とりあえず僕はあります。
でも、そんな時どうやってswfファイル作ればいいんだろう?とか調べてたら、swfmillというxmlからswfを生成するフリーのジェネレータを見つけました。
で、今回はコレを利用して色々遊んでました。


・画面のリサイズ
dummy-widthの部分に横幅、dummy-heightの部分に縦幅を入れればOK。
値は1pxで入れたければ20倍した値を入れてください。






・画像の差し替え(JPEG)
画像のバイナリコードは、phpだと

$data = base64_encode("\xFF\xD9\xFF\xD8".file_get_contents('画像ファイルのパス'));

で取得できます。
後はXMLの下記の部分を差し替え




画像のバイナリコード(/9n/2P/Y/+AAEEpGSUYAA/O4vib...)



・文字列の差し替え
省略


・MovieClipの色変更
dummy-color3の部分を各RGBチャネルで差し替え。
PlaceObject2のobjectIDはそれぞれ違うのでチェック。











・GIF画像の差し替え
無理でした。
今回はJPEGの変換方式しか確認してなかったので、調べればGIFもできるのかな?
PNGは一応サポートしてるらしいですが、試しませんでした。


・メモ
サイズが小さい画像だとDefineBitsLosslessで定義されてたけど、
ちょっと大きくなるとattributeにn_colormapが追加されたDefineBitsLossless2で定義されてた。
DefineBitsLosslessについてググると詳細載ってるっぽい(あんま調べてない)。


・感想
 動的生成できるようになったら、ケータイのオリジナル待ち受け画面とか作れて夢いっぱいだね!
 わくわく!


・参考サイトさま

・swfmillのインストール方法。コマンドラインからの処理についてもちょこちょこ。
http://www.sj6.org/flashlite_by_swfmill_install/
http://www.plusmb.jp/2008/12/05/1510.html

・swfを用いて画像差し替え(上の方のサイトが凄く丁寧で特に分かりやすかったです)
http://d.hatena.ne.jp/ken39arg/20081116/1226852621
http://www.plusmb.jp/2008/12/19/1775.html

xml直書きでswf生成について
http://www.hakkaku.net/articles/20080218-149

・swfmillにちょっと同系列のジェネレータであるmingについて
http://www.sj6.org/flashlite_by_ming_and_php_install/