IO_SWF replaceActionString
ActionScript2 で記述してコンパイルしたバイナリコードは、
SWF ファイルの主に DoAction タグに格納されます。
その DoAction 内の (ActionScript2 で URL指定や代入処理で渡したであろう)
文字列を入れ替える処理を実装しました。
具体的には ActionScript で a = 'hoge'; 等とした場合の hoge や
getURL 関数に渡した URL文字列等を SWF のレベルで置換できます。
FlashLite のゲームでパラメータを埋めたり、終了後のページ遷移先を動的に変更できる。はずです。(原理的にはいけるはず)
導入方法
- IO_Bit,IO_SWF が入ってない環境
pear install openpear/IO_SWF openpear/IO_Bit
- 既に入っている場合 (install を実行しても古いままなので)
pear upgrade openpear/IO_Bit pear upgrade openpear/IO_SWF
実験
php /usr/share/php/sample/swfreplaceactionstring.php bloxorz. swf Sound YoyaSoundYoya > t.swf php /usr/share/php/sample/swfdump.php -f t.swf | grep Yoya [1] YoyaSoundYoya
実装
DoAction タグの parse/build/dump 処理
- http://openpear.org/changeset/2479 (ひな形的なもの)
- http://openpear.org/changeset/2480 (SWF4 を殆どカバー)
文字列入れ替え処理
使い方は、swfreplaceactionstring.php を見て下さい。