• 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. Valid Number--LeetCode

    class Solution { public: bool isNumber(string s) { if(s == " ") return false; ; ; while(s[ ...

  2. hdu 1839 Delay Constrained Maximum Capacity Path

    最短路+二分. 对容量进行二分,因为容量和时间是单调关系的,容量越多,能用的边越少,时间会不变或者增加. 因为直接暴力一个一个容量去算会TLE,所以采用二分. #include<cstdio&g ...

  3. 2-jQuery - AJAX load() 方法【进阶篇】

    第一篇的AJAX load() 方法过于简单,补充一下,完整的. 格式 $(selector).load(URL,data,callback); 源码 <!DOCTYPE html> &l ...

  4. 明天学习一下验证码的匹配和thinkphp第十三章

    333333333 js 冒泡排序 var arr=[17,19,5,90,3];window.onload=function(){// alert(arr[0]);var len=arr.lengt ...

  5. 两端对齐布局与text-align:justify

    百分比实现 首先最简单的是使用百分比实现,如下一个展示列表: <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  6. hdu_5826_physics(物理题)

    题目链接:hdu_5826_physics 题意: 给你一些点的速度和初始位置,还有方向,这些速度和加速度满足v*a=c,然后又q个询问,问第t秒第K小的速度是多少 题解: 将物理公式转换为v与t的关 ...

  7. [ An Ac a Day ^_^ ] CodeForces 468A 24 Game 构造

    题意是让你用1到n的数构造24 看完题解感觉被样例骗了…… 很明显 n<4肯定不行 然后构造出来4 5的组成24的式子 把大于4(偶数)或者5(奇数)的数构造成i-(i-1)=1 之后就是无尽的 ...

  8. 关于MTK平台SIM-ME Lock的配置方案

    针对一些运营商的锁网需求,MTK平台已经对其有很好的支持.绝大多数的海外需求可以通过直接配置相关文件来完成.这里简单描述一下配置方法,不做原理分析. 相关数据结构分析: Modem中与SML锁网配置相 ...

  9. erlang dets

    1.dets表包含set.bag.和duplicate bag 2.dets:open_file(TableName,Options)创建或打开表 3.Options 1){auto_save,Int ...

  10. 【实验室笔记】C#上位机学习笔记

    用C#编写上位机,基本流程是[1]串口配置,[2]串口发送数据,[3]串口接收数据. [1]串口配置 串口的属性配置包括: No.1串口端口号 No.2串口波特率 No.3串口数据位 No.4串口停止 ...