[actionscript-3] 如何确定swf发布的Flash播放器版本?



Answers

Flex SDK包含一个名为swfdump的工具,可显示SWF文件中的所有元数据。 当我运行“swfdump foo.swf”时,这是输出的开头:

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

我有一个来历不明的SWF,我需要知道它在发布时针对哪个Flash播放器版本。 我如何获得此信息?




大多数 - 全部? - 到目前为止答案是不正确的,这是不幸的,因为我希望找到这个问题的答案:)。

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>

这意味着swfversion.com为我的SWF显示了11,尽管我只要求用户拥有10.2。 根据http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html 4.6将目标玩家设置为11.1,将swf版本设置为14.所以我不清楚如何swfversion.com一点都有用。




请参阅http://www.adobe.com/devnet/swf.html上的SWF规范

然后执行十六进制转储或在可以显示十六进制的编辑器中打开SWF。 SWF版本是前几个字节之一,并且在压缩数据开始之前。 我想说它是字节4,但我不完全记得。 该值是版本号。 IIRC,点版本未在SWF中编码。

GNU文件也可能告诉你。 不过,我可能已经编辑了我的规则。






Related