第一章  Flash游戏概述
教学提要
什么是Flash
Flash的发展历程
Flash的特点
Flash与游戏
ActionScript简介
Flash游戏开发的一般过程
重点与难点
    对Flash有个总体的认识,尤其是Flash的特点,要重点掌握。
教学内容:
一、 什么是Flash
    Flash是基于矢量的动画制作软件。最初它仅被用于设计具有简单交互功能的矢量动画,但经过多年的发展,Adobe Flash已经集矢量绘图、动画制作、多媒体集成、人机交互、网络通信、数据处理等功能于一身。其面向对象的脚本语言ActionScript亦在发展中走向成熟,成为Flash互动程序的核心部分。在拥有强大功能的同时,Flash还能具有良好的网络特性和简单易用性等特点。这就难理解为何Flash成了网络互动多媒体的事实标准,成了在线游戏程序开发的首选平台。而且,随着网页游戏的兴起,以及手机作为多媒体娱乐终端的作用越来越被人们认识,Flash的应用还将被推向更广阔的领域。
二、 Flash的发展历程
Flash的前身是Future Splash Animator,1996年被著名的Macromedia公司收购,改名为Flash,之后Flash得到了迅速的发展。早期Flash主要用于设计网页矢量动画,自2000年的Flash5.0开始,Flash完善了它的脚本语言ActionScript 1.0,这给Flash注入了强大的扩展能力,Flash的应用从此得到一个质的飞跃。之后Flash的每次更版,都在编程能力上给广大的闪客带来不少的惊喜,Flash的应用也得到了爆炸式的发展。如今,在互联网、智能手
机、其它各种嵌入式系统、电视媒体等等许多令域中都能看到Flash的身影,它是名副其实的网络时代的宠儿。2005年,Macromedia公司被Adobe公司收购,Macromedia Flash遂改名为Adobe Flash,目前最新版本为Adobe Flash CS3(Flash 9)。Flash CS3使用功能更加强大的脚本语言:ActionScript 3.0。下图为Flash CS3 PROFESSIONAL的欢迎界面:
Flash CS3中文版的欢迎界面一角
Flash仍然在不断地发展着,预计08年会推出Flash CS4,它将内建3D引擎并提供IK 骨骼系统支持,这真是一个激动人心的消息,就让我们拭目以待吧。
经过多年的发展,Flash早已不是一个孤立的开发环境。它与Dreamweaver、Firework分工协作,被称为是网络三剑客,Maromedia被Adobe收购之后,Flash又实现了与Illustrator、Photoshop的无缝协作;它与Adobe Device Central配合,开发手机Flash应用;它与其它集成开发环境配合,制作富应用程序(Rich Application),如QQ宠物和QQ游戏;与Flash Media Server结合,可以开发网络应用程序,如基于Flash的视频会议系统;还可以用Flex,以纯XML描述文件和ActionScript动态生成.swf文件,从而在网络环境下,给用户以丰富的客户体验。
三、 Flash的特点
Flash首先是一个功能强大的多媒体集成开发环境。大多数的位图、矢量图、音频、视频都能为Flash所用。让我们来看看Flash的“胃口”有多大,点击【文件】|【导入】|【导入到舞台】,弹出导入对话框。点击格式选择下拉框,会看一个长长的可导入的格式列表。
其中常用的格式如下:
格式名称
简要说明
网页游戏小游戏jpg、gif、png、tif
通用的位图格式,其中gif可以包含动画,png可以包含8位的透明通道。
psd
Photoshop的文档格式。
ai、fh、wmf
常用的矢量图片格式。
avi、mov、dvi、mpg、flv、3gp
各种视频格式,其中flv为Flash标准的视频格式,3gp是用于移动设备的视频格式。
wav、mp3
常用的音频格式。
fla
Flash源文件。
swf
Flash的目标文件,导入时以逐帧的方式保留主时间轴动画。
需要注意的是,并非所有Flash导入对话框列出的格式都可以被完美地导入到Flash中。因为这些格式往往都是其它公司自行开发的格式标准,这些文件的结构可能会根据每个公司自己的需要而有所改变,这是Flash所无法控制的。如果出现导入意外,则需要对素材进行一些处理。例如提示导入mp3失败,则可以通过专业的音频制作软件进行重新保存成能够导入的mp3编码方式,再行导入。如果导入某些矢量图格式出现与原图差异较大,则可以尝试用相关软件保存成低版本的矢量图格式再导入。如果想导入swf作品的完整动画与以及脚本,则可以尝试使用硕思闪客精灵(Sothink)对作品进行反编译,生成fla源文件之后再行导入。
在多媒体集成的基础上,Flash提供了强大而简便的动画设计功能,如运动补间、遮罩。通过这些功能,可以实现各种神奇的动画效果。
其次,Flash还是一个集成的编程开发环境。它拥有一套完整的、功能强大的面向对象脚本语言:ActionScript。我们甚至可以不使用任何素材,也不手工绘制任何图形,直接使用脚本也能创建美丽绝伦的动画特效,还可以使用Flash提供的大量的类、API和组件,以及自定义类、自定义组件,从而组建庞大的Flash应用程序。
在动作面板中点击图标,则会看到Flash自带的所有类、API和组件,如下图所示:
ActionScript3.0自带类包截图
再次,Flash具有鲜明的网络特征。它的流行本身就得益于互联网的发展,文件小、播放器嵌入于各种浏览器中、跨各种操作系统平台、采用流媒体技术、本地文件存取限制等等,无不说明了Flash先天的网络特征。
还有,Flash能很好地处理XML,尤其是ActionScript3.0,它包含以下 E4X(ECMAScript for XML规范)类:XML、XMLList、QName 和 Namespace。这使得Flash具有强大的格式化数据处理能力,以及与各种服务和应用进行数据交换的能力。
Flash可以在嵌入式系统中应用。尤其在智能手机上,Flash得到了快速的应用,给用户以不同以往的掌上娱乐体验。Flash Lite专门用来开发手机Flash应用,Flash Lite的出现给J2ME产生了巨大的冲击。
总之,强大的媒体兼容能力、矢量动画能力、面向对象程序设计语言、鲜明的网络特性、支持XML、强大的跨平台特性,每个功能都让Flash的魅力倍增。可以说,只有你想不到,没有Flash做不到,这句话毫不夸张。
四、 Flash与游戏
Flash强大而简便的交互功能注定它自诞生开始就与游戏结缘。到目前为止,网络上流传的Flash游戏种类繁多数量不计其数。如棋类游戏、格斗游戏、冒险游戏、迷宫游戏等,几乎所有的街机游戏都有Flash版游戏,各种经典的小游戏也在Flash中被一次次翻版。
但这并不意味着Flash什么游戏都能胜任。最大的问题是图形处理的速度瓶颈。为了达到跨平台的特性,Flash放弃了使用DirectX或者OpenGL等底层图形加速的机会。ActionScript 3.0在这方面已经有了突破性的进展,据称其运行效率是ActionScript2.010倍。这无疑再次拓展了Flash游戏的领域,但到底能否“快”到足够好的程度,还有待实践检验。在未能打破速度瓶颈前,开发大中型的Flash游戏较需要特别关注采用各种速度优化策略的应用。
Flash的另一个局限是不能随意存取本地硬盘数据,这是为了用户安全而做出的决定。作为折中方案,Flash提供共享对象(SharedObject)类用于在用户计算机上读取和存储有限的数据量。共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享。本地共享对象与浏览器 cookie 类似。
最后,Flash是基于二维平面的开发环境,虽然可以通过投影,将三维空间映射为二维平面,但毕竟大大增加了设计的复杂度和实时计算量。到目前为止,仍然没有出现让人耳目一新的真三维Flash游戏,多数三维效果仍然通过特制的位图和精心的布置来模拟。
除此之外,Flash的魅力得以完美释放。总的来说,Flash是设计中小游戏的最佳工具,同时具有潜力设计大型互动游戏的潜力。无论你是出于个人爱好,还是大公司的商业运作,F
lash都是一个很好的选择。
一般而言,了解别人用Flash做什么游戏可以给我们许多借鉴作用,可以让我们对Flash游戏有更直观的了解,并且对其充满信心和期待。就目前成功的应用来看,Flash可以轻松胜任这些类型的游戏开发任务:
单机益智游戏
    几乎所有的经典小游戏都有Flash版。不仅如此,Flash游戏设计者们还创作了数以万计的各种小游戏。这些游戏被广泛应用在教育、娱乐、交流、广告等领域。
人机对战游戏
这种游戏带有人工智能。游戏中的人工智能指计算机角能够根据玩家角的各种状态做出“聪明”的反应。例如下棋、格斗,玩家总要想尽办法,才能战胜电脑,这激起了玩家挑战的欲望。
情景游戏
玩家通过选择情节走向来完成游戏任务。情景游戏可以小到只是一张电子贺卡,也可以大到一个总长为40小时的角扮演游戏。这种游戏往往以画面精美和情节动人见长。Flash足以发挥情景游戏的特点。
远程互动游戏
目前这方面的应用正在迅速增加,例如各种互动。这类游戏一般是结合其它开发环境共同完成,或者客户端用Flash开发而服务器端用其它编程语言开发。
手机游戏
这方面的应用目前也是炙手可热,随着智能手机越来越多,相信Flash在这方面将再次独领风骚。
总之,Flash游戏入门门槛低,成效快,是制作中小型游戏的最佳工具。许多公司将Flash的这个优势应用在了广告、教育、娱乐等方面。也有许多编程爱好者通过Flash炫耀技术、展现个人创意等等。
虽然Flash游戏开发的入门门槛低,但是和任何艺术创作一样,要想制作精品游戏,还是需要下很大的功夫。开发者或者开发团队必须并且在美工、动画、程序设计、市场策划、游戏策划等方面都有术业专攻的人才。坚持不懈地学习,不断超越自我, Flash总会给我们带来成功的喜悦,我们也在一次次的成功中快乐地成为一个“闪林高手”。
本书的重点是讲解Flash游戏的技术核心――程序设计,并尽量囊括所有与程序设计有关的知识与经验。而与程序设计无关的部分,则本着拿来主义的精神,只使用不展开,如读者有这些方面的不足,需要通过其它方式改进。
五、 ActionScript简介
Flash强大功能的核心,就是ActionScript。让我们先认识一下ActionScript吧。
ActionScript 是针对Flash Player 运行时环境的编程语言,它在 Flash 内容和应用程序中实现了交互性、数据处理、网络通信以及其它许多功能。 ActionScript 代码是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的。ActionScript 代码通常被编译器编译成"字节码格式"(一种由计算机编写且能够为计算机所理解的编程语言),字节码嵌入swf文件中,swf文件由运行时环境 Flash Player 执行。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。