第1章 了解ActionScript3.0 1
1.1ActionScript的历史 1
1.2认识舞台和主时间轴 2
1.2.1舞台(Stage) 2
1.2.2主时间轴(MainTimeline) 4
1.2.3理解舞台和主时间轴 7
1.3了解变量 8
1.3.1定义变量 8
1.3.2给变量赋值 9
1.3.3输出变量值 11
1.3.4重复赋值 12
1.3.5变量stage与舞台 15
1.3.6变量root与主时间轴 18
1.4通过属性面板定义变量 20
1.4.1控制影片剪辑实例 20
1.4.2控制动态文本 23
1.5变量的执行顺序 26
1.5.1帧的播放顺序 26
1.5.2图层的加载顺序 26
1.5.3play()命令无效的问题 27
1.6了解动作面板 29
1.6.1动作面板的组成 29
1.6.2使用代码提示 30
1.6.3代码折叠 31
1.7代码注释 34
1.7.1单行注释 35
1.7.2多行注释 35
1.7.3文档注释 36
1.8代码位置 38
1.8.1外部文件代码 38
1.8.2类代码 40
第2章 简单数据类型 43
2.1数据类型 43
2.1.1声明数据类型 43
2.1.2包装类 44
2.2int类型和int类 45
2.2.1int类型表示整数 46
2.2.2取整数的数位 47
2.2.3了解toString()方法 48
2.3uint类型与uint类 48
2.3.1RGB颜色 49
2.3.2键控代码 50
2.4Number类型与Number类 50
2.4.1浮点数 50
2.4.2注意浮点运算 50
2.5Boolean类型与Boolean类 51
2.6String类型与String类 52
2.6.1定义字符串 52
2.6.2字符串的索引 53
2.6.3了解转义符 55
2.7变量名的命名规则 56
2.7.1变量名是标识符 56
2.7.2同一个变量名不能重复定义 57
2.7.3不能用MovieClip类的属性名和方法名 59
2.7.4不能使用关键字 59
2.8变量的更多知识 60
2.8.1变量的默认值 60
2.8.2变量定义与代码优化 62
2.8.3“*”类型与自动类型转换 63
2.8.4类型转换函数 66
第3章 复杂数据类型 70
3.1复杂数据类型 70
3.1.1包与类 70
3.1.2使用Stage类 71
3.1.3new运算符 73
3.2使用显示类 75
3.2.1创建MovieClip类的实例 75
3.2.2创建Bitmap类的实例 77
3.2.3用反射动态创建实例 79
3.2.4使用事件 80
3.3静态方法和静态属性 81
3.3.1了解Math类 81
3.3.2事件类的常量属性 81
3.3.3使用静态方法 83
3.4理解引用 83
3.4.1简单数据类型变量 84
3.4.2复杂数据类型变量 84
3.4.3比较简单变量和引用变量 85
3.5垃圾回收 87
3.5.1引用计数算法 87
3.5.2标记和清除算法 88
3.5.3delete与动态类 89
3.6类型检测与转换 90
3.6.1typeof()函数 90
3.6.2is运算符与继承链 91
3.6.3类型转换函数与as运算符 92
3.7数组访问运算符 93
3.7.1创建和访问数组 93
3.7.2this关键字 94
3.7.3动态访问属性和方法 94
第4章 流程控制 96
4.1条件语句 96
4.1.1if语句 97
4.1.2if-else语句 102
4.1.3条件运算符 104
4.1.4else-if语句 105
4.1.5if语句的嵌套 106
4.1.6switch语句 107
4.2循环语句 109
4.2.1while循环语句 109
4.2.2do…while循环语句 113
4.2.3for循环语句 115
4.2.4forin循环语句 117
4.2.5foreachin语句 118
4.2.6循环语句的嵌套 121
4.3其他语句 124
4.3.1break语句 124
4.3.2continue语句 125
4.3.3label标签语句 126
4.4帧循环 127
4.4.1多帧循环 127
4.4.2enterFrame事件 129
4.5间隔循环 130
4.5.1setInterval()函数 130
4.5.2setTimeout()数 133
4.5.3Timer类 133
第5章 函数 141
5.1认识函数 141
5.2定义和调用函数 142
5.2.1用function定义函数 143
5.2.2用“()”调用函数 145
5.2.3函数名及引用 146
5.2.4返回语句 148
5.2.5如何编写函数 150
5.3函数的参数 151
5.3.1形式参数和实际参数 151
5.3.2值传递和引用传递 153
5.3.3参数的默认值 155
5.3.4任意数量的参数 157
5.4变量的类型 158
5.4.1局部变量 158
5.4.2实例变量 159
5.5函数调用的高级知识 161
5.5.1arguments类与递归调用 161
5.5.2Function类与函数调用 162
5.5.3动态调用函数 165
5.5.4取代条件语句的技巧 166
5.6开发3D菜单 168
5.6.1结构设计 168
5.6.2把素材导入库中 169
5.6.3从库中导出图片 170
5.6.4让图标旋转 171
5.6.5设置图标的属性 173
5.6.6添加菜单的交互性 175
第6章 显示对象 179
6.1初识显示类 179
6.1.1抽象、继承与DisplayObject类 180
6.1.2交互与InteractiveObject类 181
6.1.3容器与DisplayObjectContainer类 184
6.2绘图与Graphics类 187
6.2.1了解Graphics类 187
6.2.2编写绘图代码的技巧 188
6.2.3绘图曲线 190
6.2.4绘制填充图形 193
6.3了解显示列表 193
6.3.1显示列表(displaylist)与应用程序架构 194
6.3.2创建显示列表 195
6.3.3上一级引用 198
6.3.4下一级引用 200
6.3.5关于手工创建的显示列表 202
6.4深度管理 205
6.4.1了解深度 205
6.4.2z顺排列 207
6.4.3交换深度 208
6.4.4深度使用技巧 209
6.5基于时间轴的程序开发 211
6.5.1【库】面板 211
6.5.2帧标签与FrameLabel类 212
6.5.3打方块游戏 213
6.5.4帧代码与addFrameScript()函数 218
6.6预载技术 220
6.6.1了解LoaderInfo类 221
6.6.2最简单的预载 221
6.6.3预载的高级用法 223
6.7使用动画包 226
6.7.1使用Animator类制作补间动画 226
6.7.2使用Tween类制作补间动画 227
6.7.3使用TransitionManager类制作过渡效果 230
第7章 事件处理 232
7.1事件处理概述 232
7.1.1早期的事件处理模型 232
7.1.2新事件处理模型的特点 232
7.1.3事件的发送者 233
7.1.4事件名 234
7.1.5事件的接收者 235
7.1.6事件对象 236
7.1.7事件类的架构 238
7.2掌握Event类 239
7.2.1事件流(eventflow) 239
7.2.2Event类的bubbles和eventPhase属性 243
7.2.3Event类的target和currentTarget属性 244
7.2.4事件的默认行为(Defaultbehaviors) 246
7.2.5事件的优先级与事件阻止 247
7.2.6关于弱引用 251
7.2.7自定义事件 252
7.3处理DisplayObject类的事件 253
7.3.1activate事件和deactivate事件 253
7.3.2added和removed事件 254
7.3.3enterFrame和render事件 255
7.3.4显示实例与普通实例的区别 256
7.4处理交互对象的键盘事件 258
7.4.1KeyboardEvent类 258
7.4.2使用组合键 261
7.4.3使用updateAfterEvent() 263
7.4.4用类保存键控代码 264
7.5使用鼠标事件 266
7.5.1MouseEvent类 266
7.5.2处理滚轮事件 267
7.5.3扩展鼠标事件 268
7.5.4检测鼠标移动的速度 270
7.5.5批量拖动显示对象 270
7.5.6检测持续按下鼠标 272
7.5.7鼠标控制的转盘 274
7.5.8检测鼠标是否离开了影片 275
第8章 Flash数学基础 277
8.1坐标与注册点 277
8.1.1舞台中的坐标 277
8.1.2中心点和注册点 278
8.1.3【信息】面板中的坐标 279
8.1.4影片剪辑实例的坐标 280
8.1.5全局坐标和本地坐标 281
8.1.6动态修改注册点 285
8.2角度 290
8.2.1手工设置显示实例的角度 290
8.2.2程序设置角度 292
8.2.3角度和弧度 292
8.2.4坐标中的角度 293
8.3Math类 296
8.3.1勾股定理 296
8.3.2正余弦函数 297
8.3.3正余弦曲线 302
8.3.4随机方法 303
8.4二维坐标系统与Point类 305
8.4.1有向线段 306
8.4.2定比分点 307
8.4.3极坐标和笛卡儿坐标 309
8.5直线与Line类 310
8.5.1倾斜角与斜率 310
8.5.2直线方程 313
8.5.3两直线的交点 314
8.5.4点到直线的距离 315
8.6矩形与Rectangle类 317
8.6.1获取矩形区域 317
8.6.2DisplayObject类的scollRect属性 319
8.6.3缩放与DisplayObject类的scale9Grid属性 321
第9章 Flash物理基础 326
9.1速度与运动 326
9.1.1基于帧的运动 326
9.1.2基于时间的运动 329
9.2力与加速度 331
9.2.1重力 332
9.2.2弹性力 334
9.2.3匀速圆周运动 338
9.2.4两点间的运动 341
9.3简单碰撞检测 343
9.3.1形状与形状碰撞 343
9.3.2点与形状碰撞 345
9.3.3矩形与形状碰撞 346
9.4二维向量 348
9.4.1了解向量 349
9.4.2向量的表示方法 352
9.4.3了解Vector类 353
9.4.4Vector类的构造函数 353
9.4.5angle和length属性 358
9.4.6display()方法 363
9.4.7reset()和clone()方法 363
9.4.8向量的四则运算 365
9.4.9点积与标准化 368
9.4.10向量投影 368
9.5高级碰撞检测与反应 370
9.5.1圆与线段的碰撞检测 370
9.5.2圆与线段的碰撞反应 374
9.5.3穿墙现象 379
9.5.4完整的例子 382
第10章 面向对象编程基础 384
10.1包与类路径 384
10.1.1了解类的定义 384
10.1.2编写第一个类 385
10.1.3使用包 387
10.1.4类路径 389
10.2属性 391
10.2.1成员变量与局部变量 391
10.2.2实例属性与静态属性 394
10.2.3控制属性的读写 395
10.3方法 397
10.3.1初识构造方法 397
10.3.2用构造函数传递参数 398
10.3.3在构造函数中使用this 399
10.3.4默认构造函数 399
10.3.5实例方法和静态方法 400
10.4修饰符 401
10.5了解继承 403
10.5.1隐式继承 403
10.5.2显式继承 404
10.5.3原型继承 408
10.6文档类 409
10.6.1了解文档类 409
10.6.2文档类与帧代码 411
10.6.3文档类与界面的联系 415
10.7链接类 417
10.7.1自动定义链接类 417
10.7.2自定义链接类 418
10.7.3使用swf资源库 419
10.7.4类加载与应用程序域 420
10.8成员与继承 425
10.8.1无参构造函数 425
10.8.2有参构造函数 426
10.8.3override修饰符 428
10.8.4protected修饰符 431
10.8.5静态成员 435
10.8.6final修饰符 437
10.9类之间的关系 438
10.9.1基础知识 439
10.9.2应用——帧频检测 440
10.10了解接口 444
10.10.1接口是标准 444
10.10.2定义接口的语法 445
10.10.3接口继承 446
10.10.4接口的实现 446
第11章 设计模式 451
11.1事件处理与观察者模式 451
11.1.1观察者模式 451
11.1.2事件处理机制 453
11.1.3在类中自定义事件 457
11.2MVC模式 460
11.2.1模型设计 460
11.2.2视图实现 462
11.2.3控制器实现 463
11.3工厂模式 464
11.3.1简单工厂模式 465
11.3.2工厂方法模式 467
11.4单例模式 469
11.4.1静态工厂方法 469
11.4.2辅助类与单例模式 472
11.4.3实例——工具提示 475
11.5模板方法模式 482
11.5.1抽象类与抽象方法 483
11.5.2模板方法 484
11.5.3子类实现 485
11.5.4优化模式 486
11.6实例——显示多视图 488
11.6.1需求介绍与分析 488
11.6.2编写DefaultView类 489
11.6.3编写具体内容类 491
11.6.4多态 493
11.6.5设计文档类 494
11.7界面应用程序 498
11.7.1类图分析 498
11.7.2模型设计 499
11.7.3视图设计 501
11.7.4创建视图 503
11.7.5控制器设计 505
11.8迭代子模式 510
11.8.1了解迭代子模式 510
11.8.2迭代 511
11.8.3聚集 512
11.8.4逆序迭代 513
11.8.5扩展聚集 515
11.9合成模式 515
11.9.1显示类的架构 515
11.9.2实现合成模式 517
11.9.3遍历显示对象 519
11.10装饰模式 521
11.10.1了解装饰模式 521
11.10.2使用装饰类 524
11.10.3装饰显示对象 524
11.11策略模式 526
11.11.1了解策略模式 526
11.11.2统计图 528
第12章 Flash与服务器端程序间的通信 531
12.1ASP简介 531
12.1.1ASP的特点 531
12.1.2搭建ASP运行环境 532
12.1.3体验ASP 538
12.1.4ASP开发工具 539
12.2Flash与ASP之间的通信 539
12.2.1Flash从文本文件获取数据 540
12.2.2Flash从ASP获取数据 542
12.2.3Flash提交简单数据给ASP 544
12.2.4Flash提交复杂数据给ASP 547
12.3Flash与数据库之间的通信 551
12.3.1Flash读取与修改数据库中的数据 551
12.3.2Flash查询和添加数据库数据 556
12.4Flash结合ASP开发实例 564
12.4.1文件上传系统 564
12.4.2天气预报系统 569
12.5FMS简介 585
12.5.1FMS的特点 586
12.5.2搭建FMS服务器 586
12.5.3配置FMS 588
12.5.4管理FMS 590
12.6Flash与FMS之间的通信 593
12.6.1播放服务器端的视频 593
12.6.2将视频录制到服务器上 597
12.6.3文本聊天的实现 601
12.6.4视频聊天的实现 609
12.7php简介 615
12.7.1安装php 615
12.7.2安装MySQL 621
12.7.3检查php与MySQL的连接 627
12.7.4安装AMF 628
12.7.5读写数据库 630
第13章 高级主题 634
13.1正则表达式 634
13.1.1如何判断中文字符 634
13.1.2正则表达式的作用 635
13.1.3创建正则表达式 636
13.1.4使用正则表达式 638
13.1.5查找和替换英文单词 638
13.1.6删除头和尾的空白字符 639
13.1.7了解RegExp类和String类 640
13.1.8转义 642
13.1.9使用编码 643
13.1.10了解元字符 644
13.1.11数量词 644
13.1.12匹配的范围 645
13.1.13组合与或运算 647
13.1.14查找与替换文本 648
13.1.15代码加亮 654
13.2E4X 659
13.2.1节点 659
13.2.2节点的属性 661
13.2.3使用CDATA 663
13.2.4使用变量创建XML 665
13.2.5使用外部XML文件 665
13.2.6加载XML文件 667
13.2.7选择XML中的数据 668