0

私は、Sothink SWF Decompiler を使用して ActionScript ファイルを表示することにより、 Flash ゲームのバックグラウンド計算を理解しようと試みてきました。確かに、私は ActionScript についてほとんど知りませんが、次のようなコード行を見ています。

_loc_2 = null * (null * true) <= null;

また:

_loc_3 = null & null << (null === false);

私の立場からすると、value <= nullはあまり意味がなく、null * trueまたはnull & nullも意味がありません。ActionScript を正しく理解していないだけですか、それとも逆コンパイル プロセスのエラーですか? エラーである場合、解決する方法はありますか?

4

1 に答える 1

0

swfはおそらくobfuscaterで暗号化されているため、このようなナンセンスが表示されます。このコードは自分でテストできます(ただし、非厳密モードでコンパイルする必要があります)。

trace( "null & null: " + ( null & null ) ); // traces 0
trace( "null === false: " + ( null === false ) ); // traces false
trace( "null & null << (null === false): " + (null & null << (null === false)) ); // traces 0
trace( "null * true: " + ( null * true ) ); // traces 0
trace( "null * null * true " + ( null * ( null * true ) ) ); // traces 0
trace( "null * (null * true) <= null: " + (null * (null * true) <= null) ); // traces true

つまり、基本的に_loc_2はローカル変数を0に設定し_loc_3、ローカル変数をtrueに設定します。

于 2011-06-25T16:43:16.217 に答える