• class SWFEditor function replaceMovieClip($instance_name, $swfdata, $unused_cid_purge = true)

※ 0.33 で実装。0.40 以降を推奨。

説明

SWF バイナリ中の MovieClip を渡した SWF で差し替えます。

引数

  • string $instance_name (MovieClip を指定するインスタンス名 = tellTarget で指定する文字列)
    • 0.37 からターゲットパスで指定出来ます。A の中に B のインスタンスがある場合は、A/B のように指定して下さい。
  • string $swfdata (SWF ファイルのデータ)
  • boolean $unused_cid_purge (0.35 のみ。3.36 以降は無視して false 扱いにします) purgeUselessContents メソッドを使って下さい。

戻り値

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

使用例

  1. <?php
  2. $swf = new SWFEditor();
  3. $swf->input($swfdata);
  4. $swf->replaceMovieClip($instance_name, $swfdata_movieclip);
  5. $swf->purgeUselessContents();
  6. header('Content-type: application/x-shockwave-flash');
  7. echo $swf->output();

制限事項

  • テンプレート SWF と差し替え SWF で(ActionScriptから)お互いを指し示すターゲット名は、絶対パス指定を用いる事をお勧めします。差し替え SWF の制御タグを MovieClip の中にくるむ為、root からの階層が期待したものと異なる可能性があります。

備考

  • replaceMovieClip は入れ替え元MCが参照していた画像データを削除しません(他の場所からも共有している可能性がある為)。
    • 入れ替えた結果 SWF の何処からも参照されなくなった画像データは purgeUselessContents で削除できます。output の直前に一度だけ purgeUselessContents を呼ぶ事を推奨します。
    • replaceMovieClip の第二引数に Button を含んだ SWF を渡した場合には Button が機能しなくなる事があります。(修正予定です)
  • 0.37 まで、ビットマップ画像のモーフィングを含むシンボルを挿入した場合に、正しく表示できない不具合がありました。

参考

関連