基于ActionScript的Flash飞行射击游戏制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PINGDINGSHAN UNIVERSITY 毕业论文(设计) 题目: 基于ActionScript的Flash
飞行射击游戏制作
院(系): 软件学院
专业年级: 软件工程(专升本) 2011级
姓名: 徐畅
学号: 8
指导教师: 廖梦怡讲师
2013年3月10日
原创性声明
本人郑重声明:本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。
除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。
对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律责任由本人承担。
论文作者签名:日期:
关于毕业论文使用授权的声明
本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属平顶山学院。
本人完全了解平顶山学院有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权平顶山学院可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为平顶山学院。
本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为平顶山学院。
论文作者签名:日期:
指导老师签名:日期:
基于ActionScript的Flash飞行射击游戏制作
摘要
随着现代科技的高速发展,短短几十年,电脑游戏得到迅猛发展。
而在众多电脑游戏中,Flash游戏以其好看的动画,绚丽的声光效果,高度的通畅性,以及很强的可玩性,受到广大青少年的青睐。
在国内,对Flash的研究和开发发展迅猛,出现了大量的Flash小游戏,因此Flash游戏也成为当前的一大趋势。
本人拟开发的基于ActionScript的Flash飞行射击游戏,是一款简单的Flash 游戏,玩家可以参与游戏,角色包括玩家飞机、敌机,游戏实现游戏帮助、分数记录等模块。
在游戏中玩家使用键盘上下键来控制屏幕中的玩家飞机,瞄准并射击由右向左随机出现的敌机。
如果飞机被射中后,就会爆炸,相应的玩家会得十分,如果玩家的飞机跟敌机相撞,则有两败俱伤的效果,敌机爆炸消失,而玩家的生命值则相应的减少十分,因此尽量击落更多的敌机这样分数才会更高。
该游戏的主要特色在于玩家与攻击对象具有很强的交互性,敌机能够记忆性躲避的特点,从而让玩家感受全新的娱乐体验。
同时利用低开发建设成本和高开发的建设效率被各种高版本多媒体应用,满足人性化与智能化的基本需求。
本论文阐述了基于ActionScript的Flash飞行射击游戏制作的背景、研究现状及发展趋势,介绍了游戏开发所使用的环境、工具以及开发语言,并对相关的开发技术进行了阐述。
按照游戏开发的生命周期论述了需求分析、概要设计、详细设计和游戏实现的过程。
具体论述了面向对象设计方法、游戏设计的原则、游戏设计的总体目标以及体系结构的特点。
关键词:射击游戏,游戏规则,FLASH
Flash flight shooting game based on
ActionScript production
Abstract
W ith the rapid development of modern technology, even though only lasts for a few decades, computer games has been the rapid development. In many computer games, Flash game with its nice animation, gorgeous sound and light effect, patency of height, and can easy control, by the majority of young people of all ages. In China, the research and development of Flash is developing rapidly, the emergence of a large number of Flash game, it has become a trend of the current。
I intend to development based on the Flash flight shooting game ActionScript, is a simple Flash game, game player can participate in the game, including the scope, the role of game player, game information, score record module. In the game using the mouse to control the game player aiming mirror screen, aim and shoot from the above random. If the aircraft was shot in the back, it will explode, the corresponding game player will very, try to shoot down more enemy planes that scores can be better. The main feature of the game is the game player and attack object has a very strong interaction, the enemy can avoid the memory, so that the game player feel the new entertainment experience. At the same time, the low cost of development and construction and Gao Kaifa's construction efficiency is high version of multimedia applications, to meet the basic needs of humanization and intelligent.
This paper expounds the background, research status and development trend of Flash flight shooting game based on the production of ActionScript, introduces the use of game development environment, tools and the development of language, the development of relevant technologies are described. According to the game development life cycle describes the process of demand analysis, outline design, detailed design and the realization of the game. Discusses the object oriented design method, the principles of game design, game design and the overall objectives of the system structure.
Keywords: shooting game, the rules of the game, FLASH
目录
1 绪论 ............................................................................................. 错误!未定义书签。
1.1 课题的背景及意义 ........................................................... 错误!未定义书签。
1.2 研究现状及意义 ............................................................... 错误!未定义书签。
1.3 本论文结构安排 ............................................................... 错误!未定义书签。
1.4 本章小结 ........................................................................... 错误!未定义书签。
2 相关技术及工具介绍 ................................................................. 错误!未定义书签。
2.1 动作脚本语言 ................................................................... 错误!未定义书签。
2.2事件处理技术 .................................................................... 错误!未定义书签。
........................................................................................... 错误!未定义书签。
2.2.2 Event类事件............................................................ 错误!未定义书签。
2.3 Mxml布局技术 ................................................................. 错误!未定义书签。
2.4 碰撞检测技术 ................................................................... 错误!未定义书签。
2.5 面向对象编程技术 ........................................................... 错误!未定义书签。
2.5.1 面向对象编程的定义 ............................................. 错误!未定义书签。
2.5.2 面向对象设计思想 ................................................. 错误!未定义书签。
2.6 开发工具介绍 ................................................................... 错误!未定义书签。
2.6.1 Flash简介................................................................. 错误!未定义书签。
2.6.2 Flash组件及函数..................................................... 错误!未定义书签。
2.7 本章小结 ........................................................................... 错误!未定义书签。
3 需求分析 ..................................................................................... 错误!未定义书签。
3.1 实际业务操作流程 ........................................................... 错误!未定义书签。
3.2 设计目标 ........................................................................... 错误!未定义书签。
3.3 功能需求 ........................................................................... 错误!未定义书签。
........................................................................................... 错误!未定义书签。
3.3.2 游戏帮助 ................................................................. 错误!未定义书签。
3.3本章小结 ............................................................................ 错误!未定义书签。
4 总体设计 ..................................................................................... 错误!未定义书签。
4.1 内容设计 ........................................................................... 错误!未定义书签。
4.2 开发思路设计 ................................................................... 错误!未定义书签。
4.3 页面设计 ........................................................................... 错误!未定义书签。
4.4 结构设计 ........................................................................... 错误!未定义书签。
4.5 规则设计 ........................................................................... 错误!未定义书签。
4.6 游戏主要模块设计 ........................................................... 错误!未定义书签。
4.7 本章小结 ........................................................................... 错误!未定义书签。
5 详细设计与实现 ......................................................................... 错误!未定义书签。
5.1 系统设计 ........................................................................... 错误!未定义书签。
5.2 游戏背景设计 ................................................................... 错误!未定义书签。
5.2.1 游戏说明 ................................................................. 错误!未定义书签。
........................................................................................... 错误!未定义书签。
5.3 详细设计 ........................................................................... 错误!未定义书签。
5.3.1 角色设计 ................................................................. 错误!未定义书签。
5.3.2 场景设计 ................................................................. 错误!未定义书签。
5.3.3 相关方法的设计 ..................................................... 错误!未定义书签。
5.3.4 自定义类的设计 ..................................................... 错误!未定义书签。
5.4 系统的实现 ....................................................................... 错误!未定义书签。
5.4.1 关键问题的解决方案 ............................................. 错误!未定义书签。
5.4.2 游戏的发布 ............................................................. 错误!未定义书签。
5.5 本章小结 ........................................................................... 错误!未定义书签。
6 测试与性能分析 ......................................................................... 错误!未定义书签。
6.1 测试计划 ........................................................................... 错误!未定义书签。
6.2 功能测试 ........................................................................... 错误!未定义书签。
6.3 页面测试 ........................................................................... 错误!未定义书签。
6.5 测试结果 ........................................................................... 错误!未定义书签。
6.6 性能测试 ........................................................................... 错误!未定义书签。
6.7 本章小结 ........................................................................... 错误!未定义书签。
7 总结 ............................................................................................. 错误!未定义书签。
7.1 本程序的总结和展望 ....................................................... 错误!未定义书签。
7.2 感想 ................................................................................... 错误!未定义书签。
附录 ............................................................................................... 错误!未定义书签。
参考文献 ......................................................................................... 错误!未定义书签。
致谢 ............................................................................................. 错误!未定义书签。
1 绪论
飞行射击类游戏是当今比较流行的游戏类型之一,一直以来深受不少玩家的喜爱,本人拟开发的基于ActionScript的Flash飞行射击游戏,是一款简单的Flash 动作类游戏,玩家可以通过轻松的进行游戏来缓解工作和学习压力。
本章主要是介绍该系统的研究背景、意义和研究现状,并介绍了本论文的结构安排。
1.1 课题的背景及意义
目前在互联网,电视媒体上人们经常可以看到Flash所制作的动画,Flash以它本身的多媒体和可交互性而广为推崇。
如中央电视台的《快乐驿站》、现在流行甚广的《喜羊羊与灰太狼》、《大话西游》等,它所带来亲切氛围、强烈的视觉效果不仅使少年儿童乐此不彼,还使许多的成年人都拍手称赞。
Flash在现如今的日常生活中的应用方面有以下几点:
1.手机领域的开发。
手机领域的开发将会对精确(像素级)的界面设计和CPU 使用分布的操控能力有更高的要求,但同时也意味着更加广泛的使用空间。
2.教学应用方面。
利用Flash现有的技术制作无疑会极大增强学生的学习的积极性和创新能力。
3.站点建设方面。
不仅可以做IDGo,Banner,还可以使用Flash建立全Flash 站点。
全面的控制;无缝的跳转;加入PhotoShop等的一些效果和更丰富的媒体内容;更体贴用户的流畅交互;以及跨平台和小巧客户端的支持以及与其它Flash 应用方案的无缝连接集成,结合超高的界面维护能力和整个站点的架构能力将使得站点更加完美。
4.软件系统界面开发。
Flash对于界面元素的可控性和它所表达的效果无疑具有很大的诱惑。
对于一个软件系统的界面,Flash所具有的特性完全可以为用户提供一个良好的接口。
5.Flash游戏开发已经进行了多年的尝试,但至今为止仍然停留在中、小型游戏的开发上。
游戏开发的很大一部份都受限于它的CPU能力和大量代码的管理;不过可喜的是Flash播放器性能的提高,而且基于Java类的结构的开始也奠定了这些基础。
所以在将来的发展中游戏又是它的一大发展领域。
1.2 研究现状及意义
Flash被称为是“最为灵活小巧的前台”,结合ActionScript的对象和流程控制,使得灵活的界面设计和动画设计成为可能,但一直还未形成一套完整的Flash 游戏的设计体系。
Flash游戏主要应用于一些趣味化的、小型的游戏之上,以完全发挥它基于矢量图的优势。
Flash游戏在游戏形式上的表现与传统游戏基本无异,主要生存于网络之上,因为它的体积小、传播快、画面美观,所以大有取代传统Web网游的趋势。
现在国内外用Flash制作无端网游已经成为一种趋势,只要浏览器安装了Adobe的Flash player,就可以玩所有的Flash游戏了,它不需要下载客户端,不需要下载数据包,无论在任何地方任何时间任何一台能上网的电脑或移动终端都能进行游戏。
而无论从游戏界面还是动态交互过程来看,都令玩家难以区分这是浏览器上的网页应用,还是一个独立的游戏程序,这比传统的Web网游进步许多。
Flash游戏具有跨平台的特性,无论你处于处于何种平台,只要你安装有支持的Flash Player,就能保证它们的最终显示效果都一致。
而不必像在以前的网页设计中为IE和Mozilla或NetSpace各设计一个版本。
它的可移植性很强,主要应用在小型网络中和小型设备中。
目前利用Flash开发出了许多跨平台的网络小游戏,甚至可以匹敌大型MMOR,如今3G时代来临,我们可以在手机上玩到网络游戏,现有的Flash制作的游戏有:SLG类(热血三国),体育类(热血球球),桌面类(愤怒的小鸟),TD类(植物大战僵尸)等。
目前国内使用Flash开发的单机游戏己经不计其数,使用Flash开发大型网络游戏在国内不多见,但在国外己经有了一定数量。
游戏在未来的主导文化中将占据重要的地位,基于Flash开发的网页游戏,图形表现力强,客户端可以实时下载,运行期间稳定,占用资源少。
1.3 本论文结构安排
在对如今比较流行的飞行射击类游戏体验和调研的基础上,再结合自己对该游戏知识的了解,在大学期间所学的专业技术知识,设计了一个基于ActionScript 的Flash飞行射击游戏。
该游戏由交互式多媒体集成,具有灵活方便的素材库,采用Flash工具进行场景与游戏角色的制作,基于ActionScript3.0语言进行程序设计。
同时利用低开发建设成本和高开发的建设效率被各种高版本多媒体应用,满足人性化与智能化的基本需求。
第一章主要介绍了该游戏研究、设计的背景和飞行射击类游戏的研究现状,在此基础上分析设计,论述该游戏的意义以及分析和目前已有该类游戏的不同和改进之处。
第二章主要介绍了设计该游戏所用到的相关技术和开发工具的简单介绍,包括开发环境等。
第三章是对该游戏的需求分析以及该游戏的可行性研究,在调研大家对飞行射击游戏的需求的基础上,详细分析、总结该游戏所需具有的功能模块,并对各功能模块进行了具体的用例分析,由此得出了不同玩家的功能需求和系统的性能、数据需求。
第四章是系统的概要设计,主要包括游戏功能模块设计。
功能模块设计是更加需求分析得出游戏必须的几个功能模块,绘制了系统的功能模块图并阐述了各模块所具有的功能。
第五章介绍了该游戏的详细设计与实现,从页面设计、类的设计以及各功能的详细设计与实现结果进行了描述。
页面设计阐述了进行页面设计所需的关键技术,页面的布局方式。
类的设计是针对各功能模块而设计的具体功能类和为了支持这些功能类而设计的支持类等。
功能的详细设计与实现是对如何具体的实现游戏的各大功能进行了具体的描述,重点描述了进行这些功能设计的设计理念、实现这些功能所用到的专业技术和具体的实现过程,同时对游戏功能的实现界面进行了截图展示。
第六章是系统的测试,包括测试环境的介绍,功能测试、用户界面测试和测试得出的一些问题严重程度的描述。
其中的功能测试主要通过设计测试用例对各大功能模块进行测试,以确定各功能都已实现且能正常运行。
用户界面测试主要是用于测试游戏的各界面之间能否正确的跳转,并且能够正确的向玩家展示所有的必要信息。
第七章是作为结束语,对该游戏的设计做了简单的总结,阐述了自己通过本次游戏设计从中的收获和自身存在的不足之处,最后对游戏的改进和扩充寄予了一定的展望。
1.4 本章小结
本章首先介绍了该课题的背景和意义,明确了设计该游戏的必要性和意义所在。
接着介绍了该类游戏的研究现状,最后介绍了本论文的组织结构安排。
2 相关技术及工具介绍
该部分主要介绍该游戏所采用的技术及开发工具,涉及Flash、事件处理技术、ActionScript脚本语言,面向对象技术等。
2.1 动作脚本语言
ActionScript动作脚本是遵循ECMAscript第四版的Adobe Flash Player运行时环境的编程语言。
它在Flash内容和应用程序中实现交互性、数据处理、以及其他许多功能。
ActionScript是Flash的脚本语言,是一种面向对象的编程语言。
ActionScript语言是Adobe公司基于Flash Player平台开发RIA(Rich Internet Application)应用的语言。
ActionScript的诞生就是为了增加RIA平台的交互性能,随着ActionScript本身的发展,ActionScript成为基于Flash Player平台应用开发的核心。
同时ActionScript语言的发展也使得Flash Player平台发生了重大的变革。
它为Flash应用程序提供了强大的交互性和数据处理能力。
ActionScript代码通常被编译器编译成“字节码格式”,字节码嵌入SWF文件,SWF文件由Flash Player 中的ActionScript虚拟机(A VM)执行。
ActionScript是开发网页媒体及强交互的脚本解析器技术,使用与Java及Javascript类似语法,可以控制Flash动画,实现多种交互功能。
ActionScript3.0支持了Socket联网功能,使得开发大型交互式网页游戏成为可能。
凭借ActionScript3.0的出色表现,Flash技术成为了绝大多数小游戏开发的技术基础。
Action Script最早出现在Flash CS3中,当时的ActionScript1.0语言还很简陋,功能也仅仅局限于控制动画的播放等动作。
在Flash CS4中,推出了Action Script 3.0,其发生了很大的变化,基本语法都经过了改写,编程方法也从面向过程转变到了面向对象,提供了自定义的函数并新增了强大的数学函数、颜色、声音以及XML等对象的支持,使得用户的编程更加得心应手,和用户的交互也得到了进一步的提高。
ActionScript代码可用来向文档中的媒体元素添加交互式内容。
还可以轻松地将ActionScript添加到文档的内置行为,以及可以添加到媒体对象的特殊效果。
例如,可以添加代码以便用户在单击某按钮时现实一幅新图像,还可以使用ActionScript向应用程序添加逻辑。
逻辑使应用程序能够根据用户的操作和其它情
况采取不同的工作方式。
这些技术使得Flash不仅功能强大,且易于使用。
在使用Action Script时应注意以下几点:
1.使用Action Script定义类或接口的脚本必须保存为外部脚本文件,且每个脚本只能定义一个类。
也就是说,不能在动作面版中定义类和接口。
2.可以隐式(把它们存储在全局的或文档指定的搜索路径中指定的位置,然后再脚本中使用它们)或显式(使用导入命令)地导入类文件。
可以使用通配符导入文件包(一个目录中的类文件的集合)。
3.Flash MX 或更高版本的播放器支持用Action Script开发的Flash动画。
4.在Flash MX2004中创建的新文件的默认发布设置时Action Script。
如果读者计划修改现有的FLA文件,使用Action Script语法,需要确保在该FLA文件的发布设置中指定Action Script。
如果不指定,即使不产生编译错误,文件还是不能正确编译的。
2.2事件处理技术
编写游戏必然要用到事件处理技术来进行玩家操作事件的判断以做出相应的事件处理。
在Action Script应用程序中事件处理有很多种,在本游戏中主要用到Event类事件、Item Event事件、鼠标事件等。
AS3.0事件处理过程是按照事件流的方式来处理的,事件流的处理过程采用处理——响应方式,可分为三大阶段:捕获事件阶段、目标阶段、冒泡阶段[3]。
三个阶段的作用:捕获阶段从根节点到子节点,检测对象是否注册了事件监听函数,是则调用监听函数。
目标阶段调用目标对象本身注册的监听器程序。
冒泡阶段从目标节点到根节点,检测对象
是否注册了事件监听函数,是则调用监听函数。
图2-1 事件流处理流程
由于是游戏,所以玩家必然要大量的使用鼠标进行操作,因此,鼠标事件必不可少,还将被多次应用。
在任何组件上都可以发生鼠标事件。
在ActionScript3.0中,统一使用MouseEvent类来管理鼠标事件。
每次发生鼠标事件时,都会将MouseEvent对象调度到事件流中。
鼠标事件通常由使用指针的用户输入设备(如鼠标或轨迹球)生成。
在使用过程中,无论是按钮还是影片事件,统一使用AddEventListener注册鼠标事件。
此外,若在类中定义鼠标事件,则需要先引入
2.2.2 Event类事件
在AS3.0事件处理系统中,事件对象有两个主要用途。
首先,事件对象通过将特定事件的信息存储在一组属性中,来代表实际事件。
第二,事件对象包含一组方法,可用于操作对象和影响事件处理系统的行为。
为方便访问这些属性和方法,Flash Player API定义一个Event类,作为所有事件的基类。
Event类定义一组基本适应于所有事件对象的属性和方法[4]。
Event类作为创建Event对象的基类,当发生事件时,Event对象将作为参数传递给事件侦听器。
Event类的属性包含有关事件的基本信息,例如事件的类型或者是否可以取消事件的默认行为。
为了能监视到Event类的事件,事件源必须使用addActionListener方法获得监视器:创建监视器的类必须实现接口ActionListener。
2.3 Mxml布局技术
游戏的场景和界面布局采用Mxml技术,呈现出友好的界面效果。
从本质上说它是一种XML规范的标签语言,用于进行用户界面组件布局。
在Flex中,利用MXML标签来定义用户接口和基本组件,如控件类DataGrid、Label、Button 和Hslider等,但是有时也用来定义一些非可视的对象,比如用户界面组件与数据源之间的数据绑定等,还有一些效果类。
2.4 碰撞检测技术
按检测方式可以分为离散点的碰撞检测和连续碰撞检测。
离散点的碰撞检测是指定某一时刻T的两个静态碰撞体,看它们之间是否交迭,如果没有交迭则返回它们最近点的距离,如果交迭则返回交迭深度,交迭方向等。
连续碰撞检测则是分别指定在T1、T2两个时刻两个碰撞体的位置,看它们在由T1运动到T2时刻的过程中是否发生碰撞,如果碰撞则返回第一碰撞点的位置和法线。
连续碰撞检测是最为自然的碰撞检测,可以大大方便碰撞响应逻辑的编写,可以很容易避免物体发生交迭或者穿越。
离散点的碰撞检测则没有那么友好,当检测到碰撞时两个物体已经发生了交迭,如果其中有三角形网格对象那么已经有许多三角形发生了交迭,如何将两个交迭的对象分开并按合理的方式运动是一个挑战。
虽然连续碰撞检测是最自然的方式,但它的实现非常复杂,运算开销也很大,所以目前大部分成熟的物理引擎和碰撞检测引擎还是采用了基于离散点的碰撞检测。
本游戏采用基于离散点的碰撞检测,是基于距离的碰撞检测和基于显示对象的碰撞检测的混合处理方式。
2.5 面向对象编程技术
面向对像编程英文名字,Object Oriented Programming,简称OOP。
它旨在创建如软件重用代码,具备更好的模拟现实世界环境的能力,它通过给程序中加入扩展语句,把函数“封装”进编程所必须的“对象”中。
面向对象的编程技术主要强调对象的“抽象”、“封装”、“继承”、“多态”。
从宏观的角度讲,OOP下的对象是以编程为中心的,是面向程序的对象。
2.5.1 面向对象编程的定义
面向对象技术是以一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术;是一种自上而下的程序设计方法。
面向对象编程是基于递归设计的原则:一切都是对象。
计算通过对象间相互通信,请求其他对象执行动作来实现。
对象间通过发送和接收消息来通信。
每一个对象都是某个类的实例。
类就是一组相似的对象。
类是对象相关行为的储存库。
类被组织成有单个根节点的树状结构,被称为继承层次结构。
与类实例相关的内存和行为都会被树结构中的后代自动继承。
2.5.2 面向对象设计思想
面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。
通过面向对象的思想得到了具体的体现。
对象:对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。
类:类是具有相同类型的对象的抽象。
一个对象所包含的所有数据和代码可以通过类来构造。
封装:封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。
对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。
继承:继承是让某个类型的对象获得另一个类型的对象的特征。
通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。
多态:多态是指不同事物具有不同表现形式的能力。
多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。
动态绑定:绑定指的是将一个过程调用与相应代码链接起来的行为。
动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。
消息传递:对象之间需要相互沟通,沟通的途径就是对象之间收发信息。
方法:方法(Method)是定义一个类可以做的,但不一定会去做的事。
2.6 开发工具介绍
2.6.1 Flash简介
随着网络技术的发展以及宽带网络的出现,网页动态效果逐渐成为网页制作的重要部分。
以前网上的动态效果大多数采用Java编程来实现,可是Java的运行跟浏览器的兼容性不是很好,而广泛使用的gif动画又不支持交互操作和音效,Flash的出现便解决了这些问题。
Flash是近些年才出现的一种新的事物,他是由美国的Macromedia公司推出的一款多媒体动画制作软件。
它是一种交互式动画设计工具,用它可以将音乐,声效,动画方便地融合在一起,以制作出高品质的动态效果,或者说是动画。
Flash 采用的是矢量绘图技术,是矢量图形编辑和交互式动画操作的专业软件,具有体积小、流式播放、强大的交互功能。
2.6.2 Flash组件及函数
组件是一种影片剪辑,一般由较为专业的人员来进行构建、开发和测试,其中包含了可用来修改组件外观行为的参数。
组件通过接口API被控制,通过ActionScript或者组件检查器来实现与外部信息的数据交互,来处理键盘接收到的操作。
组件参与的游戏开发可以降低程序设计与界面设计的耦合度,提高代码复用性。
函数是一个ActionScript代码块,可以在动画中随处重用。
获取/设置属性getProperty()、SetProperty()函数,随机random ()函数,设定时间间隔setlnterval()函数都是常用的内建函数。
函数秉持先定义再调用的原则,比如当在一个影片剪辑中写了函数,却要在外部来调用它的时候,则一定要等到影片剪辑成功加载完成之后再调用该函数。
事件触发函数,即当发生某个事件如按钮被按下时,将会调用此函数,将不必在每个按钮被按下时都定义一次,实现的是在时间轴上来定。