web-dev-qa-db-ja.com

swfが発行されたフラッシュプレーヤーのバージョンを確認するにはどうすればよいですか?

不明なOriginのSWFがあり、それが公開されたときに対象としたFlash Playerのバージョンを知る必要があります。この情報を取得するにはどうすればよいですか?

33
John

SWFファイルの4番目のバイトにはバージョン番号が含まれています。たとえば、0AはFlash Player 10の場合です。

編集:高い関心のために、この質問は私にもっとフィードバックを与えることにしました

SWFファイルの最初の8バイトは圧縮されません。ファイルの残りの部分は、zlib圧縮によって圧縮される(または圧縮されない)可能性があります。

  • 1バイト目: 'F'(非圧縮)OR 'C'(圧縮)。
  • 2バイト目:常に「W」。
  • 3バイト目:常に「S」。
  • 4バイト目:バージョン番号(09は、このファイルがFlash Player 9などを対象としていることを意味します...)
  • 5〜8日:ファイル全体の長さ(バイト単位)。
35
Kenan D

Flex SDKには、SWFファイル内のすべてのメタデータを表示するswfdumpと呼ばれるツールが含まれています。 「swfdump foo.swf」を実行したときの出力の先頭は次のとおりです。

<swf xmlns='http://macromedia/2003/swfx' version='9' framerate='24' size='10000x7500' compressed='true'>
12
James Ward

これはブライアンシャロンの発言に追加されます。

はい、SWFバージョンとFlash Playerバージョンの1対1のマッピングはありません。

4番目のバイトが示すのは-swf-versionであり、これの良い点は、ポイントリリースとの1対1の関係があることです

これらの参照を見てください:
http://blogs.Adobe.com/airodynamics/2011/08/16/versioning-in-flash-runtime-swf-version/
http://sleepydesign.blogspot.in/2012/04/flash-swf-version-meaning.html

2番目のリンクから:

Compiler Option     Flash Player Version
-swf-version=9      9
-swf-version=10     10, 10.1
-swf-version=11     10.2
-swf-version=12     10.3
-swf-version=13     11.0
-swf-version=14     11.1
-swf-version=15     11.2
-swf-version=16     11.3

フラッシュゲームファイルのこの情報を使用して、フラッシュプレーヤーが私のフラッシュゲームポータルで古くなっている可能性があることをユーザーに警告しています。そして、これはうまくいきます。

12
danishgoel

DoubleClickのFlash Validatorツールを使用できます。

https://flashval-temp.appspot.com/validator/

SWF名、バージョン、ファイルサイズ、寸法、1秒あたりのフレーム数、圧縮、合計フレーム数などの情報を提供します。

4

ほとんど-すべて? -これまでの回答のうち、不正解です。この質問への回答を見つけたいと思っていたので残念です:)。

SWFのバイト4は、SWFが使用するSWFファイル形式のバージョンを示します。これは、ターゲットプレーヤーのバージョンと同じではありません

プレーヤーの最小バージョンは、コンパイラオプションのtarget-playerを使用してコンパイル時に設定され、SWFファイル形式のバージョンは、swf-versionオプションを使用して設定されます。

これらのオプションのデフォルト値は、FLEX_SDK/frameworks/flex-config.xml内にあります。私が使用しているSDKバージョン(4.5.1)の場合、デフォルトは次のとおりです。

    <!-- Specifies the minimum player version that will run the compiled SWF. -->
   <target-player>10.2.0</target-player>

    <!-- Specifies the version of the compiled SWF -->
    <swf-version>11</swf-version>

つまり、ユーザーに10.2のみを要求する場合でも、SWFに対してswfversion.comは11を表示します。そして http://help.Adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html によれば、Flex 4.6はtarget-playerを11.1に設定し、swf-versionを14に設定します。 m swfversion.comがどのように役立つかは明確ではありません。

4
brian sharon

http://www.Adobe.com/devnet/swf.html からSWF仕様を少し見てください。

次に、16進ダンプを実行するか、16進を表示できるエディターでSWFを開きます。 SWFバージョンは最初の数バイトの1つであり、圧縮データが開始する前です。それはバイト4と言いたいのですが、完全に思い出すことはできません。値はバージョン番号です。 IIRC、ポイントバージョンはSWFでエンコードされません。

GNUファイルもあなたに言うかもしれません。ただし、これを行うためにルールを編集した可能性があります。

2
mpdonadio