Flash SWFファイル書き換え PHP extension

Download Report

Transcript Flash SWFファイル書き換え PHP extension

Flash SWFファイル書き換え
PHP extension
2008年7月21日 よや <[email protected]>
はじめに
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 の一般的なインストール方
法と同じ
%
%
%
%
%
%

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)
これだけ。Apache 越しに使うなら graceful
か stop & start が必要。
遊び方(1) 好きなキャラクタを埋め
込んで遊ぶ
遊び方(2) 好きな文字列を入れて遊
ぶ
遊び方(3) 中の文字列を見てニヤニ
ヤする

Disassemble の機能も
F A Q (よくある質問)

Extension じゃなくても いいじゃん!


ming を使わないの?


SWF ファイルを load して一部のデータだけ入
れ替えをしたかった
swfmill を使えば?


ビット処理を php で書くのが面倒になった
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