• class SWFEditor function replaceActionStrings(array $params)

※ 0.41 から対応。

説明

SWF バイナリ中の ActionScript2.0 の文字列を書き換えます。 変数名や文字列リテラルが対象です。

引数

  • array $params (入れ替え前の文字列と後の文字列の連想配列)

戻り値

  • boolean $result (true:成功, false:失敗)

使用例

  1. <?php
  2. $swf = new SWFEditor();
  3. $swf->input($swfdata);
  4. $params = array(
  5. 'http://example.com/' => 'http://pwiki.awm.jp/~yoya/',
  6. 'default_param' => 'foobaa_param'
  7. );
  8. $swf->replaceActionStrings($params);
  9. header('Content-type: application/x-shockwave-flash');
  10. echo $swf->output();

制限事項

  • 今のところ、ボタンのクリップアクション内の文字列は書き換えません。(要望があれば対応します)
  • 今のところ、ラベルは書き換えません。(要望があれば対応します)

備考

  • 文字列エンコーディングは処理しません。自前で変換して下さい。
  • 尚、Flash ver 6 以降は UTF-8 ですが、Flash Lite 1.x は ver 4 相当なので CP932(SJIS-Win)エンコーディングです。
  • あくまで文字列 replace 機能なので、変数名を指定しても中身(その変数に対応する値)を書き換える事はできません。(変数名自体が書き換わります)
  • ActionScript3.0 は対象外です。(要望があれば前向きに善処します)
  • 0.47 からどの型で値を渡しても文字列として変数の値がセットされるようになりました。(0.46 以前では文字列以外を渡すと、意図しない動作をするだけでなく、seg.fault する可能性もありました)

参考

関連