目录
第1章Flash的基础知识
1.1初识Flash CS6
1.1.1Flash的发展历程
1.1.2动画的概念及原理
<p> </p> <p>目录</p> <p> </p> <p> </p> <p> </p> <p> </p> <p>第1章Flash的基础知识</p> <p> </p> <p>1.1初识Flash CS6</p> <p> </p> <p>1.1.1Flash的发展历程</p> <p> </p> <p>1.1.2动画的概念及原理</p> <p> </p> <p>1.1.3Flash动画的特点</p> <p> </p> <p>1.1.4Flash CS6工作界面</p> <p> </p> <p>1.2图形制作</p> <p> </p> <p>1.2.1手工绘图工具</p> <p> </p> <p>1.2.2图形工具</p> <p> </p> <p>1.2.3颜色工具</p> <p> </p> <p>1.2.4文本工具</p> <p> </p> <p>1.2.5Deco工具</p> <p> </p> <p>1.2.63D旋转工具和3D平移工具</p> <p> </p> <p>1.3元件和库</p> <p> </p> <p>1.3.1元件的类型</p> <p> </p> <p>1.3.2创建元件</p> <p> </p> <p>1.3.3库</p> <p> </p> <p>1.4基本动画制作</p> <p> </p> <p>1.4.1逐帧动画</p> <p> </p> <p>1.4.2传统补间动画</p> <p> </p> <p>1.4.3补间形状动画</p> <p> </p> <p>1.4.4补间动画</p> <p> </p> <p>1.4.5动画预设</p> <p> </p> <p>1.5**动画制作</p> <p> </p> <p>1.5.1创建运动引导层动画</p> <p> </p> <p>1.5.2创建遮罩动画</p> <p> </p> <p>1.5.3创建骨骼动画</p> <p> </p> <p>第2章ActionScript 3.0脚本编程语言基础</p> <p> </p> <p>2.1ActionScript 3.0发展概述</p> <p> </p> <p>2.2Flash CS6的“动作”面板介绍</p> <p> </p> <p>2.3ActionScript的语法</p> <p> </p> <p>2.4ActionScript的数据类型和变量</p> <p> </p> <p>2.4.1ActionScript的数据类型</p> <p> </p> <p>2.4.2ActionScript的变量</p> <p> </p> <p>2.**ctionScript的运算符与表达式</p> <p> </p> <p>2.6ActionScript的函数</p> <p> </p> <p>2.6.1认识函数</p> <p> </p> <p>2.6.2定义函数</p> <p> </p> <p>2.6.3函数返回值</p> <p> </p> <p>2.6.4函数调用</p> <p> </p> <p>2.6.5函数的参数</p> <p> </p> <p>2.6.6函数作为参数</p> <p> </p> <p>2.7类和包</p> <p> </p> <p>2.8显示列表</p> <p> </p> <p>2.8.1显示对象的一些基本概念</p> <p> </p> <p>2.8.2DisplayObject类的子类</p> <p> </p> <p>2.8.3管理显示对象</p> <p> </p> <p>2.9事件</p> <p> </p> <p>2.9.1与鼠标相关的操作事件</p> <p> </p> <p>2.9.2与键盘相关的操作事件</p> <p> </p> <p>2.9.3帧事件</p> <p> </p> <p>2.9.4计时事件</p> <p> </p> <p>2.9.5删除事件侦听器</p> <p> </p> <p>2.9.6事件流</p> <p> </p> <p>2.10动作脚本基本命令</p> <p> </p> <p>2.10.1时间轴控制命令</p> <p> </p> <p>2.10.2显示输出命令</p> <p> </p> <p>2.11ActionScript代码的位置</p> <p> </p> <p>2.11.1在帧中编写ActionScript程序代码</p> <p> </p> <p>2.11.2���外部类文件中编写ActionScript程序代码</p> <p> </p> <p>2.11.3一个简单的Flash应用程序</p> <p> </p> <p>第3章ActionScript 3.0程序控制</p> <p> </p> <p>3.1选择结构</p> <p> </p> <p>3.1.1if语句</p> <p> </p> <p>3.1.2ifelse语句</p> <p> </p> <p>3.1.3switch语句</p> <p> </p> <p>3.2循环结构</p> <p> </p> <p>3.2.1for语句</p> <p> </p> <p>3.2.2forin和for eachin语句</p> <p> </p> <p>3.2.3while语句</p> <p> </p> <p>3.2.4循环的嵌套</p> <p> </p> <p>3.2.5break和continue语句</p> <p> </p> <p>3.3影片剪辑的控制</p> <p> </p> <p>3.3.1影片剪辑元件的基本属性</p> <p> </p> <p>3.3.2控制影片剪辑元件的时间轴</p> <p> </p> <p>3.3.3复制与删除影片剪辑</p> <p> </p> <p>3.3.4拖曳影片剪辑</p> <p> </p> <p>3.4鼠标、键盘和声音的控制</p> <p> </p> <p>3.4.1鼠标的控制</p> <p> </p> <p>3.4.2键盘的控制</p> <p> </p> <p>3.4.3声音的控制</p> <p> </p> <p>3.5Flash的文本交互</p> <p> </p> <p>3.5.1文本类型</p> <p> </p> <p>3.5.2文本实例名称</p> <p> </p> <p>第4章面向对象编程基础</p> <p> </p> <p>4.1对象和类</p> <p> </p> <p>4.1.1创建自定义的类</p> <p> </p> <p>4.1.2类的构造函数</p> <p> </p> <p>4.1.3类的属性的访问级别</p> <p> </p> <p>4.1.4get() 和set()方法</p> <p> </p> <p>4.2继承</p> <p> </p> <p>4.2.1继承的定义</p> <p> </p> <p>4.2.2属性和方法的继承</p> <p> </p> <p>4.2.3重写</p> <p> </p> <p>4.2.4MovieClip和Sprite 子类</p> <p> </p> <p>4.3多态</p> <p> </p> <p>4.4包外类</p> <p> </p> <p>4.5链接类</p> <p> </p> <p>4.6文档类</p> <p> </p> <p>4.7动态类</p> <p> </p> <p>第5章数组与字符串</p> <p> </p> <p>5.1数组</p> <p> </p> <p>5.1.1数组新增元素</p> <p> </p> <p>5.1.2删除数组中的元素</p> <p> </p> <p>5.1.3数组排序</p> <p> </p> <p>5.1.4从数组中获取元素</p> <p> </p> <p>5.1.5数组转换为字符串</p> <p> </p> <p>5.1.6多维数组</p> <p> </p> <p>5.2字符串</p> <p> </p> <p>5.2.1字符串的定义</p> <p> </p> <p>5.2.2提取子字符串</p> <p> </p> <p>5.2.3字符串的拆分和合并</p> <p> </p> <p>5.2.4获取字符串指定位置的字符</p> <p> </p> <p>5.2.5在字符串中搜索</p> <p> </p> <p>5.2.6字符串的大小写转换</p> <p> </p> <p>5.2.7字符串的比较和排序</p> <p> </p> <p>第6章ActionScript的绘图功能</p> <p> </p> <p>6.1Graphics类</p> <p> </p> <p>6.2绘制图形</p> <p> </p> <p>6.2.1画线</p> <p> </p> <p>6.2.2画曲线</p> <p> </p> <p>6.2.3画矩形</p> <p> </p> <p>6.2.4画圆</p> <p> </p> <p>6.2.5画椭圆</p> <p> </p> <p>6.3位图处理</p> <p> </p> <p>6.3.1Bitmap类和BitmapData类</p> <p> </p> <p>6.3.2复制位图里的部分像素</p> <p> </p> <p>6.3.3使用BitmapData类滚动位图</p> <p> </p> <p>第7章拼图游戏</p> <p> </p> <p>7.1拼图游戏介绍</p> <p> </p> <p>7.2拼图游戏的设计思路</p> <p> </p> <p>7.2.1制作3×3图块</p> <p> </p> <p>7.2.2随机排列图块</p> <p> </p> <p>7.2.3键盘输入信息的获取</p> <p> </p> <p>7.2.4移动图块的方法</p> <p> </p> <p>7.2.5判断拼图是否完成的方法</p> <p> </p> <p>7.3拼图游戏的设计步骤</p> <p> </p> <p>7.3.1创建Flash文件</p> <p> </p> <p>7.3.2设计文档类</p> <p> </p> <p>第8章连连看游戏</p> <p> </p> <p>8.1连连看游戏介绍</p> <p> </p> <p>8.2连连看游戏的设计思路</p> <p> </p> <p>8.2.1连连看游戏的数据模型</p> <p> </p> <p>8.2.2动物方块的布局</p> <p> </p> <p>8.2.3连通算法</p> <p> </p> <p>8.2.4智能查找功能的实现</p> <p> </p> <p>8.3关键技术</p> <p> </p> <p>8.3.1使用ActionScript 3.0 删除容器的所有子对象</p> <p> </p> <p>8.3.2Point 对象</p> <p> </p> <p>8.4连连看游戏的设计步骤</p> <p> </p> <p>8.4.1创建Flash文件</p> <p> </p> <p>8.4.2设计LinkType类</p> <p> </p> <p>8.4.3设计文档类</p> <p> </p> <p>第9章看图猜成语游戏</p> <p> </p> <p>9.1看图猜成语游戏介绍</p> <p> </p> <p>9.2看图猜成语游戏的设计思路</p> <p> </p> <p>9.2.1游戏素材</p> <p> </p> <p>9.2.2设计思路</p> <p> </p> <p>9.3看图猜成语游戏的设计步骤</p> <p> </p> <p>9.3.1创建Flash文件</p> <p> </p> <p>9.3.2设计影片剪辑</p> <p> </p> <p>9.3.3动作脚本</p> <p> </p> <p>9.3.4设计文字方块类(Letter.as)</p> <p> </p> <p>第10章雷电飞机射击游戏</p> <p> </p> <p>10.1雷电飞机射击游戏介绍</p> <p> </p> <p>10.2雷电飞机射击游戏的设计思路</p> <p> </p> <p>10.2.1游戏素材</p> <p> </p> <p>10.2.2地图滚动的实现</p> <p> </p> <p>10.2.3飞机和子弹的实现</p> <p> </p> <p>10.2.4主角飞机子弹与敌机的碰撞检测</p> <p> </p> <p>10.3雷电飞机射击游戏的设计步骤</p> <p> </p> <p>10.3.1创建Flash文件</p> <p> </p> <p>10.3.2动作脚本</p> <p> </p> <p>第11章扑克牌金字塔游戏</p> <p> </p> <p>11.1扑克牌金字塔游戏介绍</p> <p> </p> <p>11.2扑克牌金字塔游戏的设计思路</p> <p> </p> <p>11.2.1游戏素材</p> <p> </p> <p>11.2.2设计思路</p> <p> </p> <p>11.3扑克牌金字塔游戏的设计步骤</p> <p> </p> <p>11.3.1创建Flash文件</p> <p> </p> <p>11.3.2设计Card类</p> <p> </p> <p>11.3.3设计文档类</p> <p> </p> <p>第12章黑白棋游戏</p> <p> </p> <p>12.1黑白棋游戏介绍</p> <p> </p> <p>12.2黑白棋游戏的设计思路</p> <p> </p> <p>12.2.1棋子和棋盘</p> <p> </p> <p>12.2.2翻转对方的棋子</p> <p> </p> <p>12.2.3显示执棋方的可落子位置</p> <p> </p> <p>12.2.4判断胜负功能</p> <p> </p> <p>12.3黑白棋游戏的设计步骤</p> <p> </p> <p>12.3.1创建Flash文件</p> <p> </p> <p>12.3.2设计文档类</p> <p> </p> <p>第13章汉诺塔游戏</p> <p> </p> <p>13.1汉诺塔游戏介绍</p> <p> </p> <p>13.2汉诺塔游戏的设计思路</p> <p> </p> <p>13.3关键技术</p> <p> </p> <p>13.3.1盘子影片剪辑对象的拖动</p> <p> </p> <p>13.3.2加载n个盘子对象</p> <p> </p> <p>13.3.3递归解决汉诺塔盘子移动</p> <p> </p> <p>13.3.4以动画效果移动盘子</p> <p> </p> <p>13.4汉诺塔游戏的设计步骤</p> <p> </p> <p>13.4.1创建Flash文件</p> <p> </p> <p>13.4.2设计文档类</p> <p> </p> <p>第14章对对碰游戏</p> <p> </p> <p>14.1对对碰游戏介绍</p> <p> </p> <p>14.2对对碰游戏的设计思路</p> <p> </p> <p>14.2.1游戏素材</p> <p> </p> <p>14.2.2设计思路</p> <p> </p> <p>14.2.3动态生成有效的8×8方块</p> <p> </p> <p>14.2.4寻找3个匹配的方块</p> <p> </p> <p>14.2.5上方的方块下落</p> <p> </p> <p>14.2.6在本列上方添加方块</p> <p> </p> <p>14.2.7查找可能的移动</p> <p> </p> <p>14.3对对碰游戏的设计步骤</p> <p> </p> <p>14.3.1创建Flash文件</p> <p> </p> <p>14.3.2设计文档类</p> <p> </p> <p>第15章Flappy Bird游戏</p> <p> </p> <p>15.1Flappy Bird游戏介绍</p> <p> </p> <p>15.2Flappy Bird游戏的设计思路</p> <p> </p> <p>15.3Flappy Bird游戏的设计步骤</p> <p> </p> <p>15.3.1创建Flash文件</p> <p> </p> <p>15.3.2设计游戏文档类(flappybird.as)</p> <p> </p> <p>第16章中国象棋</p> <p> </p> <p>16.1中国象棋介绍</p> <p> </p> <p>16.2中国象棋的设计思路</p> <p> </p> <p>16.2.1棋盘的表示</p> <p> </p> <p>16.2.2棋子的表示</p> <p> </p> <p>16.2.3走棋规则</p> <p> </p> <p>16.3.4坐标转换</p> <p> </p> <p>16.3中国象棋的设计步骤</p> <p> </p> <p>16.3.1设计棋子类</p> <p> </p> <p>16.3.2创建Flash文件</p> <p> </p> <p>16.3.3设计文档类</p> <p> </p> <p>第17章**玛丽游戏</p> <p> </p> <p>17.1**玛丽游戏介绍</p> <p> </p> <p>17.2**玛丽游戏的设计思路</p> <p> </p> <p>17.2.1游戏素材</p> <p> </p> <p>17.2.2背景地图的实现</p> <p> </p> <p>17.2.3播放声音</p> <p> </p> <p>17.2.4解决主角图像翻转</p> <p> </p> <p>17.2.5解决多个按键检测</p> <p> </p> <p>17.2.6整体实现流程</p> <p> </p> <p>17.3**玛丽游戏的设计步骤</p> <p> </p> <p>17.3.1创建Flash文件</p> <p> </p> <p>17.3.2设计敌人怪物类</p> <p> </p> <p>17.3.3设计图块类</p> <p> </p> <p>17.3.4设计地图背景类</p> <p> </p> <p>17.3.5设计主角类</p> <p> </p> <p>17.3.6设计场景类</p> <p> </p> <p>17.3.7设计文档类</p> <p> </p> <p>第18章智力测试游戏</p> <p> </p> <p>18.1智力测试游戏介绍</p> <p> </p> <p>18.2智力测试游戏的设计思路</p> <p> </p> <p>18.3关键技术</p> <p> </p> <p>18.3.1组件概述</p> <p> </p> <p>18.3.2用户界面组件</p> <p> </p> <p>18.3.3用Flash处理XML文档数据</p> <p> </p> <p>18.4智力测试游戏的设计步骤</p> <p> </p> <p>18.4.1创建Flash文件</p> <p> </p> <p>18.4.2设计文档类</p> <p> </p> <p>第19章推箱子游戏</p> <p> </p> <p>19.1推箱子游戏介绍</p> <p> </p> <p>19.2推箱子游戏的设计思路</p> <p> </p> <p>19.3推箱子游戏的设计步骤</p> <p> </p> <p>19.3.1创建Flash文件并设计影片剪辑</p> <p> </p> <p>19.3.2设计地图单元类</p> <p> </p> <p>19.3.3设计地图管理类</p> <p> </p> <p>19.3.4设计文档类</p> <p> </p> <p>第20章2.5D游戏</p> <p> </p> <p>20.12.5D游戏介绍</p> <p> </p> <p>20.22.5D游戏的设计思路</p> <p> </p> <p>20.32.5D游戏的设计步骤</p> <p> </p> <p>20.3.1创建Flash文件</p> <p> </p> <p>20.3.2设计人物类</p> <p> </p> <p>20.3.3设计文档类</p> <p> </p> <p>第21章塔防游戏</p> <p> </p> <p>21.1塔防游戏介绍</p> <p> </p> <p>21.2塔防游戏的设计思路</p> <p> </p> <p>21.3塔防游戏的设计步骤</p> <p> </p> <p>21.3.1创建Flash文件</p> <p> </p> <p>21.3.2设计敌人类(Enemy.as)</p> <p> </p> <p>21.3.3设计炮塔类(Gun.as)</p> <p> </p> <p>21.3.4设计子弹类(Bullet.as)</p> <p> </p> <p>21.3.5设计游戏文档类(dMain.as)</p> <p> </p> <p>第22章两人麻将游戏</p> <p> </p> <p>22.1两人麻将游戏介绍</p> <p> </p> <p>22.2两人麻将游戏的设计思路</p> <p> </p> <p>22.2.1素材图片</p> <p> </p> <p>22.2.2游戏的逻辑实现</p> <p> </p> <p>22.2.3碰吃牌判断</p> <p> </p> <p>22.2.4胡牌算法</p> <p> </p> <p>22.2.5实现计算机智能出牌</p> <p> </p> <p>22.3两人麻将游戏的设计步骤</p> <p> </p> <p>22.3.1创建Flash文件</p> <p> </p> <p>22.3.2设计麻将牌类(Card.as)</p> <p> </p> <p>22.3.3设计游戏文档类(Main.as)</p> <p> </p> <p>第23章关灯游戏</p> <p> </p> <p>23.1关灯游戏介绍</p> <p> </p> <p>23.2关灯游戏的设计思路</p> <p> </p> <p>23.3关灯游戏的设计步骤</p> <p> </p> <p>23.3.1创建Flash文件</p> <p> </p> <p>23.3.2设计电灯类(LightClass.as)</p> <p> </p> <p>23.3.3设计游戏文档类(Main.as)</p> <p> </p> <p>参考文献</p>显示全部信息�� 言
前言
Flash因其文件小、性能优异而得到全球网民的青睐,这也使得Flash成为网络休闲游戏开发的**平台。游戏开发融合了很多技术与表现风格,除了要有高质量的代码、迷人的艺术设计和良好的用户界面,更重要的一点是要让玩家觉得好玩。<p> </p> <p>前言</p> <p> </p> <p> </p> <p> </p> <p> </p> <p>Flash因其文件小、性能优异而得到全球网民的青睐,这也使得Flash成为网络休闲游戏开发的**平台。游戏开发融合了很多技术与表现风格,除了要有高质量的代码、迷人的艺术设计和良好的用户界面,更重要的一点是要让玩家觉得好玩。</p> <p>本书作者长期从事Flash教学与应用开发,在长期的工作、学习中积累了丰富的经验和教训,了解在学习编程时什么样的书能提高Flash游戏开发能力,使读者以*少的投入收获*大的实际成果。</p> <p>本书内容: 讲解Flash的基础知识,例如图层、帧、元件、实例、影片剪辑、“库”面板、“属性”面板、各种绘图工具及其使用技巧; 讲解ActionScript 3.0编程技术和技巧,例如如何利用Flash和ActionScript 3.0制作交互式游戏、平台类游戏,有利于读者学会面向对象的游戏设计技术,了解ActionScript 3.0程序设计的所有相关内容。本书游戏实例涵盖了**、射击、棋牌、休闲、网络等游戏。</p> <p>本书特点: 内容丰富、全面,其中的通用代码可直接应用于一般的游戏。每款游戏实例均提供了详细的设计思路、关键技术分析以及具体的解决方案。每一个游戏实例都是实用的Flash游戏编程实例。</p> <p>本书是帮助读者自娱自乐、创造美好生活、步入Flash游戏程序员行列的敲门砖。</p> <p>需要说明的是,学习游戏动画编程是一个实践的过程,而不仅仅是看书、看资料的过程,亲自动手编写、调试程序才是至关重要的。通过实际的编程以及积极的思考,读者可以很快地掌握很多的编程技术,而且在编程中读者会积累许多宝贵的编程经验。在当前的软件开发环境下,这种编程经验对***尤其显得不可或缺。</p> <p>本书由夏敏捷和杨要科(中原工学院)主持编写,张西广编写第2章,徐飞编写第3章,杨要科编写第8~12章,王佩雪编写第16章,张俊宝编写第20章和第21章,其余章节由夏敏捷编写。在本书的编写过程中,为确保内容的正确性,参阅了很多资料,并且得到了中原工学院计算机学院郑秋生教授和**Flash程序员的支持,在此谨向他们表示衷心的感谢。</p> <p>由于编者水平有限,书中难免有不足之处,敬请广大读者批评指正,在此表示感谢。</p> <p>编者电子信箱: jsjjc_33@163.com。</p> <p>夏敏捷2017年10月</p> <p> </p> <p> </p> <p> </p>显示全部信息免费在线读第3章ActionScript 3.0程序控制众所周知,Flash中的动画依靠的是时间轴,在没有脚本的情况下,动画会依照时间轴从第1帧不停地播放到*后一帧,然后重复播放或者停止。为了能更好地控制动画,必须使用脚本语句。如果想使动画具有逻辑判断的功能,则要使用流程控制语句了。一般情况下,Flash执行动作脚本从**条语句开始,然后按顺序执行,直至达到*后的语句。这种按照语句排列方式逐句执行的方式称为顺序结构。顺序结构是程序中使用*多的程序结构,但用顺序结构只能编写一些简单的动作脚本,解决一些简单的问题。在实际应用中往往有一些需要根据条件来判断结果的问题,条件成立是一种结果,条件不成立又是一种结果。像这样的复杂问题的解决就必须用程序的控制结构,控制结构在程序设计中占有相当重要的地位,通过控制结构可以控制动作脚本的流向,完成不同的任务。3.1选择结构
选择结构在程序中以条件判断来表现,根据条件判断的结果执行不同的动作。ActionScript 3.0有3个可用来控制程序流的基本条件语句,分别为if语句、ifelse语句、switch语句。本节将详细讲解这3种不同的选择程序结构。3.1.1if语句
if (条件表达式){
//在条件成立的情况下执行{}中的语句,否则跳过{}执行后面的语句
}
例如:
var a:unit=12;
if (a%2==0)
trace(a,"是偶数."); 在条件表达式中,取模运算符“%”的优先级高于“==”,所以先计算“a%2”,然后判断它的值是否等于0。当条件为真时执行trace()语句输出相关信息,由于需要执行的代码只有一行,所以可以不用大括号,如果需要执行的代码只有一个语句段,必须把所有需要执行的语句都放在一对大括号内。3.1.2ifelse语句ifelse语句在简单if语句的基础上增加了一个程序分支,这种语句的一般形式如下:
if (条件表达式) {
① …