質問

ASコードのリンクを編集するためのSWFが与えられました。実際には、SWFは、データベースからPHPコードによって生成される(実際に取得された)XMLを使用しています。

menuXML.load("/sub/page/dynamic.php?genre=" + genre); 

そのため、ポイントは、同じSWF 'mainfraim'を使用して、dynamic.php?genre = ###に基づいて、異なるアニメーション/ソースを埋めることができることです。

今、Flash Decompiler Goldを使用してSWFのすべてのファイルを抽出し、Adobe Flashで再び開いて編集できます。完了したら、Ctrl+Enterを入力すると、すぐに4つのコンパイラエラーがあります!!エラー:1x <予期しない 'eccounted> 2x <ステートメントブロックは'} '>'> 1x <ecected a field name '後に終了する必要があります。オペレーター。 >

元のSWFが完全に機能する場合、これらのエラーはどのように存在するのですか?!

これを解決できない場合は、.phpファイルを作成する方法を見つけて、SWFが使用しようとします。 ###)

ありがとう!

役に立ちましたか?

解決

私はあなたの問題を理解しているかどうかはわかりませんが、ロード方法に渡されたURLを変更する必要があるようです。また、SWFはActionScript 2.0のようです。

分解者のような作業ですが、逆コンパイラで生成できるFLAファイルは、同じSWFを生成するのに役立つことはめったにありません。時々、コードが違法であり、ほとんど常にグラフィックがねじ込まれています。

私はかつていくつかの単純なコードの変更(いくつかのURLやその他の単純なものを変更するなど)をSWFに変更する必要がありましたが、ソースはありませんでした(紛失し、バックアップがありませんでした...)。

使った ゆがみ このため、うまく機能しました(また、私が最初に思ったほど難しくありませんでした)。

Flasmは逆コンパイラではなく、分解者です。 SWFを使用し、ActionScriptバイトコードを解析し、アセンブリのようなコードを使用してテキストファイルを生成します。そのコードを編集して、SWFを再組み立てることができます。それはグラフィックスやアニメーションにタッチしないので、それは私が必要としていたものであり、おそらくあなたのために働くことができました。

少しテストしましたが、うまくいきました。

私はこのコードからFLAで始めました:

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(ok:Boolean):Void {
    if(ok) {
        _debug_txt.text = "ok";
        _debug_txt.text = xml;
    } else {
        _debug_txt.text = "error";
    }
};

xml.load("/sub/page/dynamic.php");

次に、SWFを含むディレクトリにCMDプロンプト(私はWindowsにあります)を開き、次を実行しました。

flasm -d test_flasm.swf > test_flasm.flm

これにより、SWFがテキストファイルtest_flasm.flmに分解されます。実行可能ファイルのパスに溝を追加しましたが、代わりにFlasm.exeにフルパスを使用することができます。

.flmファイルの関連部分は次のようになります。

setMember
push '/sub/page/dynamic.php', 1, 'xml'
getVariable
push 'load'
callMethod

あなたのものは異なるかもしれませんが、URLを探すと、あなたはそれを見つけるでしょう。次に、そのURLを次のように変更しました。

setMember
push 'test.xml', 1, 'xml'
getVariable
push 'load'
callMethod

次に、以下を使用してSWFを再組み立てしました。

flasm -a test_flasm.flm

そして今、test_flasm.swfは「/sub/page/dynamic.php」の代わりに「test.xml」をロードします。

お役に立てれば。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top