`
iamzealotwang
  • 浏览: 118793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】Flex编译器参数中-swf-version与-target-player之关系

 
阅读更多


今天下载了Flex 4.6 SDK 后,发现framework/flex-config.xml 中的默认-swf-version的值变成了14,而-target-player则变成了11.1。

记得在Flash Player 11发布的时候,为了能正常的编译面向Flash Player 11的swf文件,需要将-swf-version的值设置为13。以此推算,14这个值应该是针对Flash Player 11.1的。

那么-swf-version和-target-player的对应关系如何?见下表:

flash Player版本 Flex SDK 版本 -swf-version -target-player
9 flex 3 9 9
10.0 flex 4.0 10 10.0.0
10.1 flex 4.1 10 10.1.0
10.2 flex 4.5和4.5.1 11 10.2.0
10.3 12 10.3.0
11.0 13 11.0.0
11.1 flex 4.6 14 11.1

上面的这份表格,是根据Targeting Flash Player versions 整理出来的,但这个表格是不准确 的。

因为,-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个:

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

在每个新版本的Flash Player 11发布的时候,必须一起提供playerglobal.swc文件,也是这个原因。因为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官方提供的最新版(也是最终版)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属性。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics