Flash游戏开发技术分析(上)
1、与Flash游戏相关的文件类型
与Flash游戏相关的文件类型有多种,最常用的有三种:.fla、.flv和.swf。
1).FLA
FLA文件是Flash项目文件,在创建Flash游戏时,首先会创建.FLA文件来建立游戏。然后会花大量时间编写FLA文件的内容。当Flash游戏开发完成,可以放到Web上时,需要创建.SWF文件。
FLA文件包含了Flash应用的源文件。
Flash Authoring软件可以编辑FLAsh文件,并编译生成SWF文件。
2).SWF
SWF是Small Web Format的缩写,SWF文件目前实际上主要用于Web上的动画矢量图,远远领先于W3C的开放标准SVG。.SWF文件可嵌入到HTML,因此可以被Web浏览器浏览,也可以被Flash Player播放。SWF还可用于应用程序,最常见的是用于游戏(会使用ActionScript)。
SWF文件是完整的、编译后且已发布的文件。
可使用Adobe Flash或Flex Builder等开发工具生成SWF文件。
3).FLV文件
FLV是Flash Video的简称,是一种流行的网络视频格式。
FLV串流媒体格式是一种新的视频格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。
一般FLV文件包在SWF PLAYER的壳里,并且FLV可以很好的保护原始地址,不容易被下载,从而起到保护版权的作用。
FLV文件可由Adobe Flash软件所创建。
FLV文件的音视频数据的编码方式与其在SWF文件的编码方式相同。
2、ActionScript 3.0语言
ActionScript 3.0是一门脚本语言,可用于Flash游戏的开发。ActionScript语言与JavaScript语言类似,两者都遵循ECMA 262标准。
ActionScript语言与JavaScript语言两者的区别在于:
* ActionScript 不支持特定于浏览器的对象,例如 Document、Window 和 Anchor。
* ActionScript 没有为所有 JavaScript 内置对象都提供支持。
* ActionScript 不支持某些 JavaScript 语法构造,例如语句标签。
* 在 ActionScript 中,eval() 函数只能执行变量引用。
* ActionScript 2.0 支持 ECMA-262 规范中没有的一些功能,例如类和强类型。这些功能中的很多功能都取自 ECMAScript (ECMA-262) 第 3 版语言规范(请参见 www.ecma-international.org/publications/standards/Ecma-262.htm)。
* ActionScript 不支持使用 RegExp 对象的正则表达式。但是,Macromedia Central 却支持 RegExp 对象。有关 Macromedia Central 的更多信息,请访问 www.macromedia.com/software/central。
ActionScript语言调用JavaScript语言的方法:
为了从JavaScript调用ActionScript的方法,你必须确认以下文件都需包含到文档内:
3、ActionScript脚本放置的位置
您可以将ActionScript脚本直接放在时间轴的关键帧的影片剪辑或按钮处,或是影片剪辑的关键帧处,或在外部文件中。不推荐把代码直接放在影片剪辑或按钮处,因为这种方式创建的代码往往难以维护。把代码放置在外部文件中,并在时间轴中置入是很好的做法。
4、Adobe Flash CS 3提供的视频部署方式
· Progressive download from a web server
放置于Web服务器上,以进度条的方式加载到本地(浏览器)
· Stream from Flash Video Streaming Service
从Flash视频流服务串流
· Stream from Flash Media Server
从Flash媒体服务器串流
· As mobile device video bundled in SWF
· Embed video in SWF and play in timeline
· Linked QuickTime video for publishing to QuickTime
5、流行的、专业的视频编辑工具
· Adobe Premiere Pro CS4
· Adobe After Effects CS4
· Apple Final Cut Pro 7
还有两个免费工具:
· Windows Movie Maker
· Apple iMovie
6、风险
我们面对的真正问题是Adobe处在开源与闭源的夹缝中,比如Flash,它绝大部分是开源的,但并不彻底。Adobe的Ludwig说,我们尽可能让它开源,但有一些编码技术还存在着限制,我们将尽力而为。