AVM1Fixer

5 月 30, 2007 on 10:11 am | In Flash.AS |

『AS2.0用のswfをAS3.0用のswfに変換するソフト』なんですが
難しいんだろうなとか思いつつひそかに作ってたら
なんかそういう話題で盛り上がってる方々もいらっしゃるらしいとのことで

 
 

・概要
とりあえず動いたって報告。
オプションとかソースとかの整備はあと回し。

・機能
AVM1用の任意のswfをAVM2用のswfに無理矢理変換します。
つまり、Flash8以前でコンパイルしたswfコンテンツを
AS3.0からフルアクセスできる形式に変換します。
(この状態でAS3.0から読み込んだ場合、全てのAS2.0は動作しません。)
読み込むAVM1用のswfが圧縮でも非圧縮でも関係なく扱えます。
但し、手抜きのため出力は圧縮swf固定となっております。

・ファイル
avm1fixer.lzh
解凍するとAVM1Fixer.jarってファイルができると思います。

・動作環境
Java 1.4くらい

・使い方
java -jar AVM1Fixer.jar <swffile> <outputfile>
<swffile> 読み込むswfファイル。
<outputfile> swfファイルを書き出す場所。

<outputfile>の場所に求めるAVM2Movieが圧縮swfで出てきます。
実行状況が適当に標準エラーから出てきますが表示しないオプションはありません。

・やめて
Flash8のswf推奨です。
Flash7以前のswfも無理矢理変換しますが、おかしくなる可能性があります。
swf内に既に存在するAS1は削除しないので、フレームアクションとかボタンアクションとかクリップアクションが入ってるとおかしいswfになるかもしれません。
例えばFlash9から読み込むとしっかりAS3のMovieClipとして扱われるけど、Flash8以前で読み込むとAS2のスクリプトがそのまま動くみたいな
・・・AS3とAS2が1つのファイルに共存するファイルを作れるって事?w

・使用条件
<swffile>を読み込んで<outputfile>に書き出すだけのはずなんですが
もし誤動作/誤操作でデータを失ったりした場合も作者は知らんです。

ライセンスは真面目に考えてないけどApacheっぽいのにしとくのがいいのかな

・参考資料
Alexis’ SWF Reference とか見てやった
やってる事は基本的にはここらへんに書いてある事と変わりません。
但し、Flash7以前のswfを読み込んだ場合には最初にFileDescriptionタグが存在しないので、メタデータもネットワークも使わないと仮定してFileDescriptionタグを勝手にでっち上げる処理、及び圧縮swfの読み込み/書き出しの処理が増えてます今のところ。

・ソース
avm1fixer_src.lzh
動くだけのソースなのでご了承下さいませ。

No Comments yet »

このコメント欄の RSS フィード TrackBack URI

コメントをどうぞ

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^