|
Flasm は、FlashのSWFファイルを、Flasm専用アセンブラに、逆アセンブルするツール。逆アセンブルしたソースを書き換えて、再度SWFファイルに書き込むことが可能なのです。 それが面白いので、いろいろいじっていたのですが、ActionScriptの埋め込まれていないSWFファイルを逆アセンブルして、そこにアセンブラを書き足して、コンパイルすると失敗するのです。 それで、なんとか、スクリプトを埋め込む方法はないかと悩んでいたのですが、やはり、解決せず。ダミーのスクリプトを埋め込んだ SWF ファイルを使うか、MTASC や swfmill などで雛形を作成した SWFファイルを、逆アセンブルして書き換えるという手法を取るしかないようですね。
それで、結局、一番イイと思った方法は、swfmill に、ダミーのスクリプト領域を作っておいて、ここを、Flasmで書き換えるという方法です。 以下、swfmill 用のXMLファイル「test.xml」:
<?xml version="1.0" encoding="utf-8" ?>
<movie width="320" height="240" framerate="12">
<background color="#ffffff"/>
<frame>
<textfield id="a_txt" width="320" height="240" size="32" text="hello!"/>
<place id="a_txt" name="a_txt" depth="10"/>
<DoAction><actions><EndAction/></actions></DoAction>
</frame>
</movie>
これを、SWFにコンパイルするには以下のコマンドを実行。 swfmill simple test.xml test.swf そして、このSWFファイルから、アセンブラの雛形を作る。 flasm test.swf すると、「test.flm」という雛形ができるので、これを編集して、SWFに書き戻す。 flasm -a test.flm 以上で、快適なアセンブラ生活が送れるようになります。 コメント→コメント編集
|