- class SWFEditor function replaceShapeData($shape_id, $shapedata)
※ 0.38 からタグのヘッダ情報毎入れ替えるようにしました。
※ 0.37 以前のデータを受理する fallback 処理はありますが、できるだけ 0.38 以降で getShapeDataで取得したデータを扱うようにして下さい。fallback の際に swf_object_replace_shapedata: fallback to read old shape data が error_log に出力されます。
説明
SWF バイナリ中のベクター画像を差し替えます。
※ 制限事項の問題により、しばらく非推奨となります。 > (get|replace)TagDataByCID と isBitmapTag を用意します。
引数
- int $shape_id (SWF 内のコンテンツ毎にふられた ID)
- string $shapedata (SHAPE の生データ。getShapeData で取得出来ます)
戻り値
- boolean $result (true:成功, false:失敗)
使用例
<?php
$swf = new SWFEditor();
$swf->input($swfdata);
$swf->replaceShapeData($shape_id, $shapedata);
header('Content-type: application/x-shockwave-flash');
echo $swf->output();
備考
- 0.38 から getShapeData でタグヘッダ情報毎取得するようにして、そのデータ形式で replace するようにしました。
- 0.37 以前の getShapeData で取得したデータも受理しますが、なるべく 0.38 以降の形式に合わせて下さい。
制限事項
- 0.37 までの制限事項
- Shape入れ替え元と後の tag 種(Shape or Shape2 or Shape3)が異なる場合に問題になります。
- Shape(無印)のひな型 SWF に Shape2 を差し込むと失敗する事が多いです。(修正予定) その逆は恐らく問題ないはず…
- Shape(無印), Shape2 のひな型 SWFに Shape3 、もしくはその逆で差し替えると問題になります。(API から考えなおす必要あり…)
参考
関連