Flash Builder 4.6不为Flash Player 10.2编译

时间:2012-01-12 17:15:02

标签: flex flash-builder flash

我是新手创建Flex应用程序并尝试使用我的第一个Flash Player 10.2。我使用Flash Builder 4.6创建了它,并使用4.5a SDK进行编译。我还在Adobe Flash Player选项中设置了目标10.2.0的选项。当我创建发布版本时,没有错误,生成的HTML文件包含以下内容:

// For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
var swfVersionStr = "10.2.0";

但是,如果我尝试使用插件的v10.2在浏览器中访问该应用程序,则表示需要11.1。对于仅使用stop()和getURL()的简单Flash CS5动画,我也遇到了同样的问题。动画有效但不会停止。

感谢您详细回复wxvxw我现在已经截取了我的编译器选项的截图,但由于我是新用户,因此无法在此处显示,但URL为...

https://lh6.googleusercontent.com/-3xEJ0RTFG-8/Tw9rJt2UloI/AAAAAAAAARs/Ruu9Em66fgo/s800/fboptions.PNG

我已经尝试了-target-player 10.2.0(之前)和现在-target-player 10.2但是都没有奏效。我还将playerglobal.swc放在以下目录中: C:\ Program Files(x86)\ Adob​​e \ Adob​​e Flash Builder 4.6 \ sdks \ 4.5.0 \ frameworks \ libs \ player \ 10.2

感谢。丹。

2 个答案:

答案 0 :(得分:3)

IIRC,FB 4.6附带的SDK只有FP 10.1和FP 10.3库。因此,为了编译FP 10.2,您必须找到相应的playerglobal.swc(可能会查找较旧的SDK版本?)。

现在,关于你的设置:你想要编译的播放器版本是在编译器参数中设置的,有多种方法可以做到这一点,但看起来你已经做了别的事情:)为了编译某个播放器版本时,编译器需要知道该播放器版本的行为,即它需要描述播放器当时所具有的所有内置函数。 playerglobal.swc提供这些函数的定义(在SDK文件夹中搜索可能的位置)。 -target-player是您需要的编译器参数。告诉编译器要定位哪个播放器的一种方法是打开项目设置,并在其他编译器参数行中键入类似-target-player 10.2的内容。请注意,您可能没有相应的playerglobal.swc。在这种情况下,编译器错误将粗略地指向您找到此库的目录。

Flash Builder和SDK从来没有11+播放器作为要求,(更多的是,SDK甚至没有针对此版本进行测试),因此要求无关(你是否使用谷歌Chrome进行测试,也许你需要检查about:plugins页面?)。你设置的是一些变量,它应该告诉用于嵌入SWF的JavaScript脚本,运行SWF所需的最小版本的播放器,这对SWF本身没有影响,它仅用于用户的信息(你应该以这样的方式设置它,如果用户有旧版本的播放器,他们将被告知升级)。如果您使用FB的代码生成或Adobe提供的Ant任务来生成包含SWF的HTML页面,那么此变量将设置为您用于编译SWF的相同版本,否则由您自行调整以将其调整为适当的价值。

答案 1 :(得分:3)

我有同样的经历,但这不是闪存未安装的问题。我在flashbuilder 4.6中设置了我的项目,使用特定的SDK(Flex 4.5.1A)和特定版本的Flash播放器(10.2.0)进行构建,但我的客户端无法在flash 10.3中播放它们(它们受到IT的限制)部门到那个版本,仍然)

我的修复:将-swf-version 10添加到其他编译器参数

我挖了一遍,发现swf文件的第4个字节表示它为它构建的flash版本;当我执行导出以释放构建时,第四个字符是十六进制0B而不是0A。

我运行了sdk bin中的swfdump.exe,发现版本是11 <swf xmlns='http://macromedia/2003/swfx' version='11' framerate='24' size='10000x7500' compressed='true' >

我添加了以下内容以获取flashbuilder用于构建项目的配置 -dump-config c:\ testconfig.xml

在那里,我找到了<swf-version>11</swf-version>

基于此,我猜想我需要设置的标志是-swf-version 10作为项目属性中的附加编译参数&gt; Flex编译器

使用该标志构建后,swfdump和配置转储

中的swf版本均为10