目前Aodbe发布的最新版的Flash CS6,都不支持将Flash Player 11作为目标播放器版本发布。这个问题很容易解决,但涉及到的东西却比较多,我在这里将一一讲解。
首先来个Setp by Step,这里以Flash Player CS5.5为例,但Flash CS4也没有问题(Flash CS3我就不确定了):
第一步 首先下载最新的playerglobal.swc(基于Flash Player11):
第二步 将其复制到 FlashCS5.5\Common\Configuration\ActionScript 3.0\FP11.1,没有这个文件夹请自行建立;
第三步 复制 FlashCS5.5\Common\Configuration\Players\FlashPlayer10_1.xml 为 FlashPlayer11_1.xml;
第四步 用 NotePad++/EditPlus/UltraEdit (但不要用windows Notepad,避免换行符问题)之类的软件打开 FlashPlayer11_1.xml ,修改以下内容:
第3行修改为:
FlashPlayer11.1" version="14" asversion="3">
第4行修改为:
Flash Player 11.1
第8行修改为:
ActionScript 3.0/FP11_1/playerglobal.swc" />
第五步 重新启动Flash CS5.5, 就可以看到新的发布设置生效了,在新建Fla文件的时候选择这个发布设置,就可以支持Flash Player 11.1新增的功能。如下图:
第六步 为了能够播放和调试新生成的Flash Player 11文件,还需要更新DebugFlashPlayer,在这里下载:http://www.adobe.com/support/flashplayer/downloads.html。注意必须下载Debug版本:Windows Flash Player 11.1 Projector content debugger。如果不知道这些版本之间的区别,可以看看我写的这篇文章:有史以来关于Flash Player的最详细说明。
第七步 下载了上面的文件后,将其复制到 FlashCS5.5\Adobe Flash CS5.5\Players\Debug,替换原来的FlashPlayerDebugger.exe。
下面是原理讲解(Flash IDE代指Flash CS4/CS5/CS5.5):
在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攥在手里,保持自己的步调来更新。
Flex SDK/Flash IDE可以和不同版本的Flash Player相配。即使是使用Flex SDK 3.6/Flash CS4,同样也可以开发出Flash Player 11.1支持的swf程序。通过使用不同版本Flash Player提供的playerglobal.swc文件,就可以让旧的Flex SDK/Flash IDE兼容新的Flash Player提供的功能,方法就是修改编译属性中的-swf-version和 -target-player编译属性。当然,也可以让新的Flex SDK兼容旧的Flash Player功能。
更新发布exe文件的时候自动打包最新版本的flashplayer
Flash一直以来的版本直接导出exe格式文件的话,就是拿安装目录下“Players”目录里的“FlashPlayer.exe”和swf文件合并封装成一个新的exe目标文件。
去Adobe官网下载最新的Flash Player 11.8 Projector content debugger ,然后改名替换该目录下的“FlashPlayer.exe”即可,以后打包exe的时候将自动使用最新的flashplayer.exe进行打包。