昨日phpとmingを使って動的にFlashを生成しようとインストールしていじってみたのだけれど、swfファイルをphpに変換するswftophpがどうもうまく動かない。
なのでming&phpという選択肢は保留にして、swfmillを使って動的swfファイル生成にチャレンジ。
swfmillはswfファイルとxmlファイルの相互変換ソフト。
swf⇒xml
xml⇒swf
の両方ができる。
なので、やりたいこととしては、
- 普通にFlashを作る
- swfmillでswfファイルをxmlに変換。
- 出力されたxmlを書き換え(多分phpで)
- 書き換えたxmlをswfに変換
これで動的にswfが生成できるぽい
まずは、インストールから(公式サイト)
wget http://swfmill.org/releases/swfmill-0.2.12.tar.gz tar zxvf swfmill-0.2.12.tar.gz cd swfmill-0.2.12
ここでFlashLite1用のエンコーディングパッチを入れる(klabの人が作ってくれてました)
wget http://lab.klab.org/files/flash/encoding.patch patch -p1 < encoding.patch ./configure
失敗したら怒られたものをインストール
yum install -y libxslt-devel make make install
できたー。
試しに使ってみる。
FlashLite1.1で書き出したhello.swfをhello.xmlに変換
swfmill swf2xml hello.swf hello.xml
できた。
次は逆変換
swfmill xml2swf hello.xml hello.swf
できない。
どうも文字コードが問題らしい。xmlの文字コードをutf-8にしてhello2.xmlを出力
nkf -w hello.xml > hello2.xml
でもってhello2.swfを生成する
swfmill xml2swf hello2.xml hello2.swf
できた!!
だけど、日本語が文字化け。
ここで、"-e cp932"を付けて変換すればいいらしい。
swfmill -e cp932 xml2swf hello2.xml hello2.swf
でけた!
動的にするには、xmlを書き換えてから変換すればおっけー!
・画像の差し替えについて
生成したxmlで画像データはこんな感じで格納されている。
<DefineBitsJPEG2 objectID="12"> <data> <data>[base64エンコードされた画像データ]</data> </data> </DefineBitsJPEG2>
これを書きかえればいいみたい。
phpでささっと書こうかな。
追記:
そしてこれを作ってみました↓
FlashLiteを使った「画像検索 for mobile」をリリースしてみた
ピンバック: swfmillでケータイFlashを動的生成してみよう(インストール編) | 携帯サイトをつくろう。
ピンバック: centOS5でswfmill « sk4
ピンバック: 牢獄に暮らす奴隷