SWFEditor 0.32 replaceMovieClip 対応

SWF の画像入れ替えやテキスト入れ替えに加えて、
(動きのある)シンボル入れ替えにも対応しました。

入れ替えたいシンボルのインスタンス名と SWFデータを渡すと、
渡した SWF をシンボルに変換して差し替えます。

まだ実験的なリリースです。今の所、
depth 重複避けとか根本的な処理が幾つか抜けています。

原理

  • インスタンス名からシンボルを検索する
    • インスタンス名(name)を持つ PlaceObject2 タグを探す
    • PlaceObject2 が character_id で指し示す Spriteタグを探す
  • CID 重複避け
    • テンプレートの SWF が使用している CID をリストアップする。
    • 入れ替える SWF 中の CID で上記のと衝突する番号は renum する
  • 渡した SWF をシンボルに変換して差し替える
    • その SWF のコンテンツ系のタグは Spriteタグの前に展開
    • その SWF の制御系タグは Sprite の中身を消して、その中に改めて展開する。

制限事項

  • 差し替える SWF 中の ActionScript のターゲットで相対パスは使わないのを推奨します。SWF を MovieClip に包む処理を入れている為、渡した SWF 内の ActionScript で root 以外を指すターゲットが別の場所を指すようになるかもしれません。

課題

  • テンプレートの SWF と差し替え SWF で depth が重複しないよう renum する。
  • 入れ替えて不要になったコンテンツタグを削除する。
  • 差し替え SWF の中に Sprite タグが含まれる場合に、その Sprite 中の CID を renum する。
  • 別の Sprite の中に入っている Sprite を指定して入れ替えられるようにする。(ただ、ちょっとパフォーマンスが心配)

続く → replaceMovieClip の使い方 - yoyaのメモ