• 2013-04-16更新:更新Flash Player 11.7/AIR 3.7正式版。
  • 详细链接FlashPlayer 11.7详情
  • 2013-03-10更新:更新Flash Player 11.6/AIR 3.6正式版以及beta 11.7。
  • 详细链接FlashPlayer 11.6详情
  • 2012-11-07更新:更新Flash Player 11.5/AIR 3.5正式版发布日期。
  • 2012-10-10更新:加入Flash Player 11.5/AIR 3.5的对应关系;加入发布日期列;修改文章结构和部分内容。
  • 详细链接FlashPlayer 11.5详情
  • 2012-08-27更新:加入Flash Player 11.4/AIR 3.4的对应关系。
  • 2012-03-20更新:本篇文章只讲了Flex SDK的情况,但Flash IDE也能通过修改配置文件的方式支持新的Flash Player功能,详见这里:让Flash支持更新的Flash Player功能
  • 详细链接FlashPlayer 11.4详情
  • 2012-04-08更新:加入AIR的版本说明;加入Flash Player 11.3的对应关系。
  • 详细连接FlashPlayer 11.3详情

Flex 4.6 SDK中,可以发现framework/flex-config.xml中的默认-swf-version的值变成了14,而-target-player则变成了11.1。记得在Flash Player 10.2发布的时候,为了使用Flash 10.2提供的原生位图鼠标光标功能,需要在编译的时候将-swf-version编译器属性值设置为11。以此推算,14这个值是针对Flash Player 11.1的。那么-swf-version和-target-player的对应关系如何?见下表:

Flash Player AIR Flex -swf-version -target-player 发布日期
9   3 9 9  
10.0 1.5 4.0 10 10.0.0  
10.1 2.0/2.5 4.1 10 10.1.0  
10.2 2.6 4.5/4.5.1 11 10.2.0 2011-2-9
10.3 2.7   12 10.3.0  
11.0 3.0   13 11.0.0 2011-10-4
11.1 3.1 4.6 14 11.1 2011-11-7
11.2 3.2   15 11.2 2012-3-28
11.3 3.3   16 11.3 2012-6-8
11.4 3.4 Adobe Flex 4.6/Apache Flex 4.8 17 11.4 2012-8-21
11.5 3.5 Adobe Flex 4.6/Apache Flex 4.8 18 11.5 2012-11-06
11.6 3.6 Adobe Flex 4.7/Apache Flex 4.9 19 11.6 2013-02-12
11.7 3.7 Adobe Flex 4.7/Apache Flex 4.9 20 11.7 2013-04-09

flash polayer 15 -swf-version 26

-target-player和-swf-version

上面的这份表格,一部分是根据Targeting Flash Player versions整理出来的,最新的部分是我自己根据Flash Player/AIR的更新不断增加的。但这个表格是不精确的。

因为,-swf-version的值能支持到那个程度,其实与Flex SDK并没有直接的关系,而是依赖于Flex SDK中的playerglobal.swc(位于frameworks/libs/player)。

打开Flex 4.6 SDK的frameworks/libs/player文件夹,可以看到其中只有一个11.1子文件夹,放置着针对Flash Player 11.1的playerglobal.swc。这个swc的作用有2个:
(这里是基于Flex SDK和Flash Builder讲解,如果你使用Flash Professional,可以看这里:让Flash支持更新的Flash Player功能

  1. 在程序编写期间,Flash Builder使用它来提供自动完成功能。当然,如果直接用mxml编译器(比如我),就没多大关系;
  2. 在程序编译期间,mxmlc编译器需要调用它。

那么-target-player是干嘛的?它用来告诉Flex编译器,在哪里去找playerglobal.swc

在Flash Builder 4.6 的项目的 ActionScrip编译器 设置中,可以设置-target-player参数的值。默认是“使用SDK所需的最低版本”。对于我目前安装的Flex SDK 4.6来说,这个“最低版本”就是11.1。

而我们可以使用特定的版本,例如下图中是11.2.0。

在程序编写期间,Flash Builder会自动去frameworks/libs/player/11.2这个目录中寻找playerglobal.swc,如果找不到,一些11.2才支持的功能(例如MouseEvent.RIGHT_CLICK)就无法得到语法提示。

而在调试和发布程序的时候,编译器使用frameworks/libs/player/11.2/playerglobal.swc进行编译。如果依然找不到这个文件,编译会报错无法打开“D:\flex_sdks\4.6.0\frameworks\libs\player\11.2\playerglobal.swc”,如下图所示:

不同步性

在每个新版本的Flash Player 发布的时候,Adobe都一起提供了playerglobal.swc文件,而且会在发布文档中说明这个版本的Flash Player对应的-swf-version是多少。

因为SDK的发布,和Flash Player的发布并非总是同步的。

在Flash 8时代,编译器和Flash Player是完全同步的。因为那时,只有Flash IDE可以生成swf文件。而Flex问世,以及MacroMedia被Adobe收购以后,Flash的发展就变得多样了,FlashIDE和Flex都可以生成swf文件,Flash Player的发展也更加独立。现在的情况,Flash CS,Flash Builder,Flex SDK,Flash Player的发布已经完全不同步了。尤其是当Adobe将Flex SDK交给Apache发展后,SDK的更新速度估计会更快。Adobe自己又会紧紧将Flash Player攥在手里,保持自己的步调来更新。(关于这段历史,我在Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系一文中做了详述)

Flex SDK可以和不同版本的Flash Player相配。即使是使用Flex SDK 3.6,同样也可以开发出Flash Player 11.1支持的swf程序。(当然,前提是不使用Flex frameworks提供的组件,仅仅使用Flash Player提供的API)。通过使用不同版本Flash Player提供的playerglobal.swc文件,就可以让旧的Flex SDK兼容新的-swf-version和 -target-player编译属性。当然,也可以让新的Flex SDK兼容旧的-swf-version和-target-player。

例如,目前Adobe官方提供的最新版(也是Adobe Flex的最终版,因为后面会更名为Apache Flex SDK)Flex SDK版本为4.6。根据Adobe的说法,这个版本的Flex SDK的最低支持的-target-player为11.1。这是因为frameworks/libs/player中仅仅提供了11.1版本的playerglobal.swc。我们可以将其他版本的playerglobal.swc复制到该目录下,并修改frameworks/flex-config.xml中的target-player标签,以改变Flex SDK默认编译的swf目标。当然,更方便和灵活的做法是在Flex项目的编译属性中设置-target-player属性。

这里还有一篇文章介绍:Versioning in Flash Runtime (-swf-version)

swf version 与flash player 对应关系的更多相关文章

  1. 让旧版本的 Flash IDE 支持更新的 Flash Player/AIR 功能

    转载:https://blog.zengrong.net/post/1568.html 让旧版本的 Flash IDE 支持更新的 Flash Player/AIR 功能 今天在论坛上看到一篇文章:H ...

  2. AS3 os与version 区别 使用Capabilities类获取Flash Player的信息

    AS3中flash.system.Capabilities类提供诸多静态的只读属性来描述应用程序当前所运行在的系统和运行时信息,如Flash Player,Adobe AIR,Flash Lite.通 ...

  3. Adobe Flash Player 因过期而遭到阻止 更新插件 运行一次 解决方法

    老机器运行 10.3.183.90 比较流畅 可是 Chrome 浏览器提示 Adobe Flash Player 因过期而遭到阻止 更新插件 运行一次 每次单击 运行一次 才运行,这样每次提醒很烦人 ...

  4. js判断是否安装flash player及当前版本 和 检查flash版本是否需要升级

    一.js检查flash版本升级 for (var i = 0, len = navigator.plugins.length; i < len; i++) { var plugin = navi ...

  5. 判断当前系统当前浏览器是否安装启用 Adobe Flash Player,检查在chrome中的状态

    一.判断当前所在系统 let sUserAgent = navigator.userAgent;let isWin = (navigator.platform == "Win32" ...

  6. Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

    转自zrong's blog:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的 ...

  7. [转]Flash Player、AIR、Flex SDK 大全

    平时不断看到有朋友在各种论坛.空间.知道.群里求 Flash 平台各种版本的运行时(Flash Player)和SDK(Flex.AIR).今天就看到不下10次!所以决定把 Macromedia.Ad ...

  8. Flex Flash Player回声消除的最佳方法

    Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提 ...

  9. csharp: Flash Player play *.flv file in winform

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

随机推荐

  1. NS_ASSUME_NONNULL_BEGIN 延伸

    NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END 在.h文件中,可以看到这两个宏,翻看定义,这两个宏的代码是 #define NS_ASSUME_NONNUL ...

  2. Excel 文件转 JSON格式对象

    将导入的如图所示格式的城乡区划代码的excel文件整理成json格式的对象储存在js文件中: var PROJECTDISTRICTDATA=[    {        "name" ...

  3. 《JavaScript高级程序设计》读书笔记 ---Function 类型

    说起来ECMAScript 中什么最有意思,我想那莫过于函数了——而有意思的根源,则在于函数实际上是对象.每个函数都是Function 类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对 ...

  4. CodeForces 703A Mishka and Game

    简单题. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #inclu ...

  5. linux命令随记

    1.当再Hadoop平台上跑代码的时候,可能会发现有些job是需要被kill重新跑的,此刻,如果一个一个手动去删除会很缓慢,此刻需要使用一个简单的脚本来实现自动全部删除操作: for i in `ha ...

  6. Windows中 RabbitMQ安装与环境变量配置

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.1:安装RabbitMQ需要先安装Erlang语言开发包.下载地址 ht ...

  7. hdu_5036_Explosion(bitset优化传递闭包)

    题目链接:hdu_5036_Explosion 题意: 一个人要打开或者用炸弹砸开所有的门,每个门里面有一些钥匙,一个钥匙对应一个门,有了一个门的钥匙就能打开相应的门,告诉每个门里面有哪些门的钥匙,问 ...

  8. PBO

    #include <GL/glew.h> #include <GL/freeglut.h> #include <iostream> GLuint pboID[]; ...

  9. hdu 1859 最小长方形

    Description 给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内.长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内. Input ...

  10. php 排序

    for($i=1;$i<count($result);$i++) { $tmp = $result[$i]['PNL']; $tmp_ = $result[$i]; $j=$i-1 ; for( ...