Как определить версию флэш-плеера, для которой был опубликован SWF? - PullRequest
33 голосов
/ 04 декабря 2010

У меня есть SWF неизвестного происхождения, и мне нужно знать, на какую версию флеш-плеера он был нацелен при публикации. Как мне получить эту информацию?

Ответы [ 6 ]

35 голосов
/ 04 декабря 2010

4-й байт в SWF-файле содержит номер версии, например 0A для Flash Player 10.

РЕДАКТИРОВАТЬ: Из-за высокого интереса к этому вопросу я решил дать больше отзывов

Первые 8 байтов любого файла SWF не сжимаются, остальная часть файла может быть сжата (или нет) сжатием zlib.

  • 1-й байт: «F» (не сжат) ИЛИ «C» (сжат).
  • 2-й байт: 'W' всегда.
  • 3-й байт: 'S' всегда.
  • 4-й байт: номер версии (09 означает, что этот файл предназначен для Flash Player 9 и т. Д.) *
  • с 5 по 8: длина всего файла в байтах.
12 голосов
/ 16 июля 2012

Это добавляет то, что сказал Брайан Шарон.

Да, отображение 1: 1 для swf-версии и версии Flash Player больше не существует.

Что за 4-йБайт изображает -swf-версию, и что хорошо в этом, так это то, что теперь существует отношение один к одному с точечными выпусками .

Посмотрите на эти ссылки :
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

По второй ссылке:

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 голосов
/ 04 декабря 2010

Flex SDK содержит инструмент swfdump, который отображает все метаданные внутри SWF-файла.Вот начало вывода, когда я запускаю «swfdump foo.swf»:

<swf xmlns='http://macromedia/2003/swfx' version='9' framerate='24' size='10000x7500' compressed='true'>
4 голосов
/ 11 апреля 2014

Вы можете использовать инструмент Flash Validator от DoubleClick:

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

Он предоставит такую ​​информацию, как имя SWF,версия, размер файла, размеры, количество кадров в секунду, сжатие и общее количество кадров.

4 голосов
/ 19 июня 2012

Большинство - все? - из ответов пока неверны, что вызывает сожаление, так как я надеялся найти ответ на этот вопрос :).

Байт 4 SWF указывает, какая версия формата файла 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 показывает 11 для моего SWF, хотя я только требую, чтобы пользователи имели 10.2. И в соответствии с http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html, Flex 4.6 устанавливает target-player в 11.1 и swf-версию в 14. Поэтому я не совсем понимаю, насколько swfversion.com полезен.

2 голосов
/ 04 декабря 2010

Взгляните на спецификацию SWF из http://www.adobe.com/devnet/swf.html

Затем сделайте шестнадцатеричный дамп или откройте SWF в редакторе, который может отображать шестнадцатеричный код.Версия SWF является одним из первых нескольких байтов и находится до запуска сжатых данных.Я хочу сказать, что это байт 4, но я не совсем помню.Значение является номером версии.IIRC, точечная версия не закодирована в SWF.

Файл GNU также может сказать вам.Возможно, я изменил свои правила, чтобы сделать это, однако.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...