加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何正确使用flash player的新功能以及flashdevelop编辑器相关知

发布时间:2020-12-15 18:11:39 所属栏目:百科 来源:网络整理
导读:Adobe 在每一个新版本的 Flash?Player 里都加入了新功能。为使用这些功能,你需要正确的编译你的 SWF 文件。不幸的是,设置你的编译环境,为编译器传递正确的选项可能很棘手。今天这篇文章就旨在为你清除这些烦恼,这样你就可以使用最新版本 Flash?Player 的

Adobe在每一个新版本的Flash?Player里都加入了新功能。为使用这些功能,你需要正确的编译你的SWF文件。不幸的是,设置你的编译环境,为编译器传递正确的选项可能很棘手。今天这篇文章就旨在为你清除这些烦恼,这样你就可以使用最新版本Flash?Player的功能了。


本篇不会涉及Flash浩瀚的集成开发环境(IDE),相反他们都使用藏在幕后的一个工具:Flex?SDK。特别是用MXMLC命令行生成SWF,和COMPC命令行生成SWC。基本方法就忽略不计了!


?

mxmlc?MyApp.as


如果你说你想用Stage3D那样的闪亮新功能。你先可以读读这个API文档,然后你写点代码再重新编译上面的命令。出人意料,你看到了下面显示的错误:
?

/path/to/MyApp.as(8):?col:?10?Error:?Access?of?possibly?undefined?property?stage3Ds?through?a?reference?with?static?type?flash.display:Stage.

????????????????????????stage.stage3Ds[0].requestContext3D("auto",?"baseline");

等等!为什么编译器居然不知道Stage3DFlash?Player不是已经发布一年了吗?还是没有从Adobe官网上下载最新的Flex?SDK?不是的,你下载了,也装了,但是编译器还需要一点设置才能知道这个新版本的Flash?Player你需要对命令行添加一个选项来告诉编译器它在编译哪个版本的Flash?Player

mxmlc?MyApp.as?-target-player=11.4.0


现在编译的时候你又发现了另一个错误:

?

/path/to/flex_sdk/frameworks/flex-config.xml(56):?Error:?unable?to?open?'libs/player/11.4/playerglobal.swc'

??????</external-library-path>

【我的提示Error: unable to open 'libs/player/10.1/playerglobal.swc' 哎,我开始也是看了这个文章半天老提示错误,什么10.0,10.3,11.7的我都下了那个包里面,结果都还是提示错误,最后猛然发现,我的player下的文件夹名为10.0,当然对自己很无语,立马建了一个10.1的文件夹,放了个10.1的SWC进去,CTRL+ENTER ,OK,哈哈】
这个错误看起来含义模糊,但是它反映了这条命令行选项怎么了。你看,所有问题发生在你想指定-target-player(目标播放器)选项上,意思是你告诉编译器链接到一个包含Flash?Player?API的特定SWC上。这个API随着每个新版本Flash?Player的发布而改变,通常这些改变是增加了新的类,方法和参数。上面这个错误是说,编译器搜寻这个playerglobal.swc)但是没找到。所以你要下载Flash?Player11.4,放这里了:

/path/to/flex_sdk/frameworks/libs/player/11.4


你将来希望会创建不存在的目录,对未来的读者来说,不管发布的是“11.4”“11.5”“12.0”还是任何Adobe发布的版本中你都可以这样创建了。来看看我的小例子:

package
{
????????import?flash.display.Sprite;
????????public?class?MyApp?extends?Sprite
????????{
????????????????public?function?MyApp()
????????????????{
????????????????????????stage.stage3Ds[0].requestContext3D("auto");
????????????????}
????????}
}


上面的代码用的是Stage3D里最基本的方法,当我把他放在Flash?Player11.4里编译,得到了这个没有捕获的异常:

ReferenceError:?Error?#1069:?Property?stage3Ds?not?found?on?flash.display.Stage?and?there?is?no?default?value.
????????at?MyApp()


为什么会这样?我们没有指定正确的Flash?Player版本?说对了,但是这只是部分原因,-target-player-效果唯一效果仅仅是指定链接的playerglobal.swc。事实是,每一个SWF有一个内在的版本号,这个版本号决定了在运行时你是用哪一个Flash?Player?API。所以我们还需设置另一项然后再次编译。

mxmlc?MyApp.as?-target-player=11.4.0?-swf-version=17


17看起来是个奇怪的版本号,因为Flash?Player的版本只到11.4,但是这个整数和发布每个小版本Flash?Player是对应的。下面是一张已发布的SWFFlash?Player版本的对应表:


非常无语,原帖不是图片,我截图后发现没法上传本地图片,上传附件也不行,点击浏览按钮一万次都没反应,去原帖看吧,孩纸们~)


你的代码终于可以正常编译了。


我们再来回忆一下,下面是你为了链接到正确的Flash?Player版本所要做的三步:


1.下载并导入正确的版本,playerglobal.swc

2.指定正确的Player版本给MXMLCCOMPC

3.指定正确的SWF版本给MXMLCCOMPC

需要记住一点,一旦你根据上面设定了特定的Flash?Player版本,是用之前版本Player的用户不能播放你的SWF,所以你要考虑好,也行JavaScript探测到后,会在网页上提示用户更新版本。当然最新版本的Flash?Player的用户仍然可以使用SWF

转载地址:http://hi.baidu.com/joomecow/item/389ca300a77e59046d90485f

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读