闪客实战——Flash高级编程

ISBN:7-5053-8423-6 定价:48元

  本书是专业级的ActionScript编程教材,由香港知名闪客颜金桫(网名Luar)主笔编写。全书共分7章。第1章和第2章讲述了一些ActionScript编程上必须注意的事项、技巧与进阶编程概念等。第3章至第7章是实战部分,主要讲解Flash应用知识:如何将概念写成ActionScript;将别的学科知识,例如数学和物理,结合到ActionScript中;并以作者的网站为范例介绍了完整的制作过程。在介绍程序编写的部分,还包括了输入与输出的过程。最后介绍了如何发布及保护Flash影片。随书光盘内容为书中所有范例源文件及几个小游戏。
  本书作者完全展示独家制作内幕,针对闪客在设计中经常遇到的问题及操作技巧进行全面的剖析,适合有一定基础的闪客作为进阶宝典。
 
 

前言:关于本丛书

  21世纪是数字多媒体的时代,其中备受瞩目的应该就是计算机图形设计技术。当前的文化艺术领域也在广泛利用计算机图形设计功能,最典型的例子就是曾经风靡全球的电影《泰坦尼克号》。现在,计算机图形设计已经是很多领域中必不可少的一项技术。而每当面对国外著名设计师的精彩设计时,我们只能惊叹其构思的巧妙和设计的精美。那么,什么时候我们才能够赶上世界一流的水平?这一点需要我们认真地反省!出版高品质的电脑图形设计书籍是培养出世界级著名设计师的基础。
综观当前整个电脑图形技术书籍市场,我们会发现这片领域已经是相当的成熟,各类图形技术的书籍琳琅满目。不过同时我们也发现大部分书籍只是停留在基础的层次上,对于有一定基础知识的读者来说,要想提高到更高的层次,就会遇到一个难以突破的瓶颈。
  “飞思数码设计院”是电子工业出版社计算机研发部全新规划的、为国内电脑图形设计爱好者量身定做的一套中高级电脑图形设计精品图书。本系列图书将精心组织国内优秀设计人员编写,力求保证图书的高质量,同时还将从在电脑图形设计领域具有领先技术的日本、韩国等地引进最畅销的精品图书并进行改编。“飞思数码设计院”将兼顾电脑图形设计技术的深度和广度,同时着力淡化所使用软件的版本,让本系列图书成为电脑图形技术领域的精品,使其拥有更加长久的生命力,以开创出具有高、精、尖概念的电脑图形设计书籍的全新理念。
  我们真诚希望“飞思数码设计院”系列丛书可以为更多读者带来广阔的学习空间,并希望我们的努力能够为国内的设计师队伍建设做出一些贡献。我们期待着您能为我们的努力提出您的意见,同时,我们也在等待着您的加入。
关于本书
  掌握ActionScript的语法很容易,只要打开Flash帮助中的ActionScript字典,跟着用法提示使用便可。但是怎样使设计的概念通过一条条ActionScript代码变成一个Flash影片,在网络上展示出来,就是一个思考与技巧的问题。很多闪客已经熟悉了Flash面板上所有的工具,能够制作出色的动画、音乐影片,甚至游戏,但却不能再提高,踏进闪客高手的行列,因为ActionScript编程是他们的门槛。本书的目的就是带领Flash新手,跨过这道门槛。所以这本书不仅是入门书,而且是一本普通闪客都能看得懂的高级教材。
  本书共分7章,分别讲解了ActionScript编程必须注意的事项、技巧与进阶编程概念等。实战部分讲解了Flash的应用知识,如何将设计概念转变成ActionScript;如何将其他学科知识,例如数学和物理,结合到ActionScript中,形成一个完整的实战案例。最后还讲解了如何发布及保护Flash影片。
  本书不是ActionScript字典,不会覆盖全部ActionScript编程概念,本书的重点是介绍如何将概念转成制成品,介绍最常用和最实用的知识。本书不讲解深涩的编程知识,也不是沉闷的编程入门理论,读者通过学习并结合后面的实战部分,可以提高Flash制作和ActionScript编程的水平。掌握ActionScript的读者或是编程人员可以跳到第3章至第7章开始阅读,遇到不明白的ActionScript概念问题,可以翻阅第1和第2章。至于ActionScript新手,建议先阅读第1章和第2章。希望认识Flash MX新功能的,建议阅读第2章的新事件处理函数、侦听器(Listener)、制作组件(Component)等。
  书中例子的源文件(fla)均收录在光盘中,但建议读者最好还是自己输入代码,以加深印象。本书在教授编程的过程中,还会讲解一些错误的方法。通过从错误中学习,读者印象会更加深刻,并能提高自行解决问题的能力。这是本书与其他同类书的不同之处。
  本书讲述的内容主要以Flash MX为主,但教授的东西,部分适用于Flash 5,还涉及了一些思考概念性方面的知识。书中实例的创作工具版本分别为Flash 5和Flash MX,播放器版本分别为Flash 5和Flash 6。书中提到Flash MX时,代表该工作、功能或文件,必须在Flash MX里进行,书中提到Flash 6时,代表该影片要发布为Flash 6格式,才支持一些新代码,同时要用Flash Player 6的播放器才可以欣赏。
  本书由飞思科技产品研发中心策划并组织编写,由香港KCLY小土豆工作室颜金桫主笔,参加本书编写工作的人员还有钟明、李家梁、梁立言、林子邦、钟勇、林升源、颜淑芳和颜淑芬等,在此一并表示感谢。
  由于编者知识所限,加上编写时间紧促,如有错漏,烦请读者赐教。

目录:

第1章 ActionScript基础 1
1.1 良好的编程习惯 1
1.1.1 图层(Layer)管理 1
1.1.2 库(Library)管理 6
1.1.3 元件、变量的命名技巧 8
1.1.4 Script的放置 10
帧Script 10
按钮Script 12
影片剪辑Script 13
1.1.5 ActionScript的执行速度 18
1.2 了解Flash的内部层次结构 21
1.2.1 _root,_level,_global 21
_root 21
_level 21
_global 21
1.2.2 level与target的区别 22
level 22
target 23
1.2.3 绝对路径(_root)与相对路径(_parent) 25
绝对路径 25
相对路径 25
1.2.4 动态路径 27
1.2.5 整个层次结构 27
影片剪辑在Flash创作工具中人工地加到舞台中 27
利用duplicateMovie()和attachMovie()复制出来 28
利用createEmptyMovieClip()创建 30
加载外部swf 31
1.2.6 全局(Global)位置与本地(Local)位置 33
影片剪辑位置 33
鼠标位置 37
1.3 链接(Linkage) 38
1.3.1 影片剪辑 39
1.3.2 声音 41
1.3.3 解决链接令下载进度失效的问题 42
影片剪辑的解决方法 43
声音的解决方法 44
1.3.4 字体 44
1.4 常用语法 46
1.4.1 一般指令 46
if...else if...else命令 46
for命令 48
while命令与do...while命令 50
Array对象 51
随机数(Random) 55
排序(Sorting) 57
set()与eval() 61
1.4.2 MovieClip对象 63
MovieClip属性 63
影片剪辑的产生 66
影片剪辑的卸载 76
swapDepths() 78
hitTest() 79
1.4.3 Math对象 81
基本四则运算 81
Math对象方法 83
数学常数 84
1.4.4 String对象 84
计算字符串的字数 84
抽取字符串某部分成为一个新字符串 85
将字符串拆分成数组 86
在字符串中寻找某字词 87
第2章 ActionScript进阶 89
2.1 函数(Function) 89
2.1.1 函数的功用 89
2.1.2 向函数传递参数 90
2.1.3 从函数返回值 92
2.1.4 函数的本地变量 95
本地变量 95
常规变量 95
2.1.5 目标路径问题 96
函数路径与调用者路径 96
函数所处理的常规变量或对象的路径 98
2.2 如何编写可重复使用的程序 99
2.2.1 帧Script 99
2.2.2 函数 102
2.2.3 影片剪辑事件 105
2.2.4 Flash MX事件处理函数 106
2.2.5 覆盖(Override) 111
2.3 原型(Prototype) 113
2.3.1 什么是原型 113
2.3.2 MovieClip对象的原型 114
扩建对象方法 114
控制所有对象 116
Flash 5版本和Flash MX版本的区别 118
2.3.3 String对象的原型 120
2.3.4 扩建静态对象(Static Object)的方法 121
2.4 侦听器Listener 122
2.4.1 以时间轴(Time-Based)为基础编程 122
2.4.2 以事件(Event-Based)为基础编程 123
2.4.3 自定义事件来源 125
2.5 组件(Component) 129
2.5.1 使用组件 129
使用ScrollBar组件 131
解决ScrollBar组件失效问题 133
使用ScrollPane组件 134
安装其他组件 138
2.5.2 自制组件 141
基本入门 142
制作自定义鼠标组件 145
第3章 应用开发基础 155
3.1 Flash的能力范围 155
3.1.1 Flash的强项 155
3.1.2 Flash的弱点 156
3.1.3 与其他软件比较 158
3.2 输入系统 159
3.2.1 鼠标控制 159
双击 159
鼠标移动速度 161
检查鼠标按键状态 164
按住鼠标键不释放 166
制作实例:穿越隧道 168
3.2.2 键盘控制 171
单键操作 171
组合键操作 172
制成组件 175
在网页中使键盘控制有效 181
3.2.3 声音视频控制 182
麦克风(Microphone)对象简介 183
相机(Camera)对象简介 185
3.3 输出系统 189
3.3.1 数据表达手法 189
文本形式:TextField对象与TextFormat对象 189
能量棒 194
图像形式:绘画方法(Drawing API) 195
3.3.2 计时 205
时间轴与getTimer() 205
前进式计时器 207
后退式计时器 208
组件制作进阶 211
3.3.3 声音 220
事件音效 221
背景音乐 228
三维音效 234
3.3.4 多语言版本 247
利用影片剪辑的关键帧 247
Unicode 250
第4章 数学和物理与ActionScript结合 251
4.1 物理模拟 251
4.1.1 运动 251
速度与加速 251
不同物体运动 253
4.1.2 碰撞 258
球体对平面 259
球体对球体 266
4.2 阶砖式游戏 273
4.2.1 地图 274
绘制地图 274
加入角色 277
4.2.2 背景滚动 282
4.2.3 等角式阶砖(Isometrics) 291
4.2.4 深度排列(Z-sorting) 295
4.3 路径查找(Path Finding) 297
4.3.1 基础 297
斜线移动 298
直角移动 304
4.3.2 Robust Tracing(鲁棒追踪) 305
绘制地图 306
设置目的地 309
编写路径查找程序 310
控制角色移动 317
结论 319
4.3.3 A* 319
4.3.4 总结 331
第5章 案例研究:个人日程系统 333
5.1 系统制作 333
5.1.1 月历系统 335
绘制月历界面 335
编写月历函数 340
5.1.2 输入系统 344
绘制输入系统界面 344
编写按钮Script 347
5.2 Local Shared对象 347
5.2.1 Flash 5的存储方法 348
fscommand:save 348
执行DOS指令 348
5.2.2 Local Shared对象 349
创建Local Shared对象 349
存储及读取Local Shared对象 351
5.2.3 存储系统制作 351
5.3 调试影片 356
5.3.1 在创作工具下调试影片 356
trace() 356
调试器 357
5.3.2 从远程位置调试影片 363
5.3.3 更新Flash Player 365
5.4 影片的发布 366
5.4.1 发布设置 366
网页 366
浮水印:Stage.onResize 368
放映文件 370
5.4.2 防止作品被转载 371
loadMovie 371
检查swf文件的URL 371
时间限制 371
5.4.3 保护代码 372
第6章 案例研究:KCLY网站 373
6.1 设计网站 373
6.1.1 网站结构 373
6.1.2 角色 376
绘制角色 376
制作动画 382
6.1.3 家具 384
6.1.4 浏览菜单 386
6.2 开始画面 388
6.2.1 弹出方格 388
6.2.2 下载中 390
下载进度棒 391
下载中的动画 393
6.3 栏目内容 396
6.3.1 浏览系统 396
栏目按钮及按钮提示 396
弹出窗口 398
6.3.2 角色步行 400
角色由远至近,先垂直走、后横行的移动 405
角色由近至远,先横行、后垂直走的移动 406
编程函数stopwalk 406
编写深度排列程序 407
6.3.3 载入内容 408
6.3.4 按钮及滚动条 413
6.3.5 联络表单 416
传送前检查 416
后台脚本语言 418
6.3.6 白天与黑夜 419
6.3.7 总结 420
第7章 总结:朝两个高阶方向走 421
7.1 面向对象编程 421
7.2 多人实时连线系统 427
附录A 出色Flash网站 429
A.1 十个我喜欢的Flash实验网站 429
A.2 十个我喜欢的Flash公司网站 429
A.3 十个我喜欢的Flash游戏和动画网站 430
附录B Flash外挂工具网站 433
B.1 综合 433
B.2 放映文件 433
B.3 制作屏幕保护 434
B.4 图像声音视频文件转换为swf 434
B.5 三维图像转为swf 434
B.6 Socket Server 434