150 likes | 272 Views
Flash SWF ファイル書き換え PHP extension. 2008 年 7 月 21 日 よや <yoya@awn.jp>. はじめに. Flash SWF (Flash の実行ファイル ) を PHP で書き換える為の extension を作成しました。 SWF Editor ( 略称 swfed ) という名前です。 説明の順番 Flash SWF について swfed の機能紹介 インストール方法 FAQ 、 そして TODO. Flash SWF ファイルって何?. Macromedia Flash の実行ファイル
E N D
Flash SWFファイル書き換え PHP extension 2008年7月21日 よや<yoya@awn.jp>
はじめに • Flash SWF (Flash の実行ファイル)を PHP で書き換える為の extension を作成しました。 • SWF Editor (略称 swfed)という名前です。 • 説明の順番 • Flash SWF について • swfedの機能紹介 • インストール方法 • FAQ 、そして TODO
Flash SWF ファイルって何? • Macromedia Flash の実行ファイル • HTML の object タグとかで指定する “~.swf” といった名前のファイル • IE や Firefox 等のブラウザは、この ~.swfファイルの中に含まれるコンテンツや命令コードを読んで、表示したり音を鳴らしたり、ボタンやマウスに反応したりする。
Flash SWF ファイルの構造 • ヘッダ+TLC形式ブロックの連結 (あとで Wikiのメモからコピー) • Bit 処理とzlib処理が出来れば OK
swfedで出来る事 • Flash SWF ファイルに対して • 画像を取り出せる • 画像の差し替えができる (マスク画像も対応!) • テキストボックスの文字列を取り出せる • テキストボックスのの差し替えができる (変数を設定すればAcrionScriptから参照できる) • スクリプトの定数抽出 (開発中) • Byte code の disassemble
swfedでテキストボックスの文字列を入れ替えるswfedでテキストボックスの文字列を入れ替える
インストール方法 • PHP extension の一般的なインストール方法と同じ • これだけ。Apache 越しに使うなら graceful か stop & start が必要。 % wget –r –np http://diary.awm.jp/~yoya/data/2008/07/18/swfed % cd diary.awm.jp/~yoya/data/2008/07/18/swfed % phpize % ./configure % make % cp modules/swfed.so (PHP exntension dir)
遊び方(3) 中の文字列を見てニヤニヤする • Disassemble の機能も
F AQ (よくある質問) • Extension じゃなくても いいじゃん! • ビット処理を phpで書くのが面倒になった • mingを使わないの? • SWF ファイルを load して一部のデータだけ入れ替えをしたかった • swfmillを使えば? • XML に落して編集はさすがに重たそう • ActionScript で画像入れ替えできるけど? • (携帯の)Flash Lite1.1 では出来ない。
swfedのアドバンテージ • 必要な部分だけ書き換えるので、無駄がない。(実装的な無駄はごめんなさい) • 仕事の分担がしやすい。 • 雛型Flashを Flash 職人が作って、動的に画像/テキストを入れ替える処理を PHP プログラマが作るとか。(mingだとこれが難しい) • 自分(yoya)が作ってるので好きに機能を追加できる。 • ベクター画像入れ替えに挑戦中
TODO(今後の課題) • ソースのRepository を決めたい。(cvs/svn管理されていない) • ライセンスを決めたい。(少なくとも利用を制限するようなライセンスにはしたくない) • Windows DLL 化 • 音声対応 (midi とか mp3 とか入れ替えたい)
最後に • Macromedia 様すてきすぎ (SWF ファイルの構造が素直なので、parse 処理を書くのが楽しい) • Klab様さいこー! (PHP extension の作り方は Klab様のサイトで勉強しました) • あとの細かい話は以下の URL にて • http://pwiki.awm.jp/~yoya/?swfed