大家好,欢迎来到IT知识分享网。
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”);
等等!为什么编译器居然不知道Stage3D?Flash 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>
这个错误看起来含义模糊,但是它反映了这条命令行选项怎么了。你看,所有问题发生在你想指定-target-player(目标播放器)选项上,意思是你告诉编译器链接到一个包含Flash Player API的特定SWC上。这个API随着每个新版本Flash Player的发布而改变,通常这些改变是增加了新的类,方法和参数。上面这个错误是说,编译器搜寻这个SWC(playerglobal.swc)但是没找到。所以你要下载Flash Player11.4的playerglobal.swc,放这里了:
/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是对应的。下面是一张已发布的SWF和Flash Player版本的对应表:
(非常无语,原帖不是图片,我截图后发现没法上传本地图片,上传附件也不行,点击浏览按钮一万次都没反应,去原帖看吧,孩纸们~)
你的代码终于可以正常编译了。我们再来回忆一下,下面是你为了链接到正确的Flash Player版本所要做的三步:
1.下载并导入正确的版本,playerglobal.swc
2.指定正确的Player版本给MXMLC或COMPC
3.指定正确的SWF版本给MXMLC或COMPC
需要记住一点,一旦你根据上面设定了特定的Flash Player版本,是用之前版本Player的用户不能播放你的SWF,所以你要考虑好,也行JavaScript探测到后,会在网页上提示用户更新版本。当然最新版本的Flash Player的用户仍然可以使用SWF。希望这篇文章在你使用Flash的新功能是帮你解除疑惑了。如果你有任何问题,可以留言给我。(最后一句是作者加的,不是我哟!当然还是欢迎大家讨论的)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21277.html