目
录
Contents
第 3 部分
ActionScript 篇
第 18 章 了解在 Flash 中的编程工作......................................................................... 313 18.1 像软件设计师那样思考问题 ................................................................................ 314
18.2
18.3
18.4
18.1.1
不要总想着逃避编程........................................................................................................ 314
18.1.2
认真地编写设计说明书.................................................................................................... 314
18.1.3
要想到还有其他的可能.................................................................................................... 315
面向对象的软件开发中的重要概念..................................................................... 315 18.2.1
类和对象............................................................................................................................ 315
18.2.2
属性和方法........................................................................................................................ 316
18.2.3
抽象 ................................................................................................................................... 316
18.2.4
封装 ................................................................................................................................... 316
18.2.5
继承 ................................................................................................................................... 317
18.2.6
多态 ................................................................................................................................... 317
18.2.7
事件 ................................................................................................................................... 318
好的编程风格 ........................................................................................................ 318 18.3.1
好的名字............................................................................................................................ 319
18.3.2
减少重复............................................................................................................................ 319
18.3.3
总是注释............................................................................................................................ 320
18.3.4
分离代码和数据................................................................................................................ 322
ActionScript 术语................................................................................................... 322
第 19 章 ActionScript 编程基础 ................................................................................. 325 19.1 ActionScript 的语法............................................................................................... 326 19.1.1
点语法 ............................................................................................................................... 326
19.1.2
斜线语法............................................................................................................................ 326
19.1.3
分号 ................................................................................................................................... 326
19.1.4
花括号 ............................................................................................................................... 327
19.1.5
圆括号 ............................................................................................................................... 327
19.1.6
引号 ................................................................................................................................... 328
19.1.7
方括号 ............................................................................................................................... 328
19.1.8
常数 ................................................................................................................................... 328
19.1.9
关键字 ............................................................................................................................... 329
19.1.10
大小写敏感...................................................................................................................... 329
19.1.11
注释.................................................................................................................................. 329
Flash 第一步——ActionScript 编程篇 19.2
Note
19.3
19.4
19.5
19.6
ActionScript 中的数据类型和变量 ....................................................................... 330 19.2.1
数据类型和变量的关系.................................................................................................... 330
19.2.2
字符串和数字数据类型.................................................................................................... 330
19.2.3
布尔数据类型.................................................................................................................... 331
19.2.4
原始数据类型与引用数据类型的区别 ............................................................................ 331
19.2.5
对象数据类型和数组数据类型 ........................................................................................ 332
19.2.6
null 和 undefined 数据类型............................................................................................... 333
使用变量 ................................................................................................................ 333 19.3.1
变量的命名约定和变量的非特定数据类型的声明 ........................................................ 333
19.3.2
在声明变量时为其严格指定数据类型 ............................................................................ 334
19.3.3
变量在程序中的运用........................................................................................................ 335
19.3.4
变量的作用域和变量冲突................................................................................................ 337
ActionScript 中的语句、表达式和运算符 ........................................................... 340 19.4.1
语句、表达式和运算符的关系 ........................................................................................ 340
19.4.2
算术运算符........................................................................................................................ 341
19.4.3
比较运算符........................................................................................................................ 342
19.4.4
字符串运算符.................................................................................................................... 345
19.4.5
逻辑运算符........................................................................................................................ 345
19.4.6
位运算符............................................................................................................................ 346
19.4.7
赋值运算符........................................................................................................................ 349
19.4.8
运算符的优先级和结合性................................................................................................ 351
控制程序的流程 .................................................................................................... 351 19.5.1
条件语句............................................................................................................................ 352
19.5.2
循环语句............................................................................................................................ 357
关于全局函数和内建类 ........................................................................................ 363
第 20 章 编写和调试程序 .......................................................................................... 365 20.1 使用“动作”面板编写脚本 ................................................................................ 366
20.2
20.3
20.1.1
“动作”面板的布局........................................................................................................ 366
20.1.2
为帧、影片剪辑和按钮编写脚本 .................................................................................... 367
20.1.3
使用代码提示.................................................................................................................... 369
20.1.4
设置脚本偏爱.................................................................................................................... 372
20.1.5
什么是 UTF-8、Unicode 和 UCS..................................................................................... 373
20.1.6
使用自动格式化................................................................................................................ 375
20.1.7
“动作”面板的工具栏.................................................................................................... 375
20.1.8
铆定脚本............................................................................................................................ 376
20.1.9
输入和输出脚本................................................................................................................ 377
调试脚本 ................................................................................................................ 377 20.2.1
发现和定义 bug——再现 bug 和给 bug 分类 ................................................................. 377
20.2.2
修改 bug——试着成为一个愤世嫉俗者 ......................................................................... 379
20.2.3
预防 bug——好的编程风格及追溯 bug 产生的时期...................................................... 380
使用调试器 ............................................................................................................ 380 20.3.1
调试器的布局.................................................................................................................... 381 ·XIV·
目
20.4
录
20.3.2
关于以 news.fla 为例来讲解调试器用法的说明 ............................................................. 382
20.3.3
在无断点情况下查看和设置属性 .................................................................................... 383
20.3.4
在无断点情况下查看和设置变量 .................................................................................... 384
20.3.5
设置断点和调试程序的技巧 ............................................................................................ 384
20.3.6
在同一位置监视多个变量................................................................................................ 387
20.3.7
远程调试及调试器自身的 bug ......................................................................................... 388
使用输出窗口和 trace 语句................................................................................... 389 20.4.1
列出电影中的对象和变量................................................................................................ 389
20.4.2
使用 trace 语句和 throw 语句........................................................................................... 390
第 21 章 使用影片剪辑.............................................................................................. 393 21.1 影片剪辑的体系结构:级、深度、层三者的关系............................................. 394 21.2 绝对路径引用和相对路径引用 ............................................................................ 397
21.3
21.4
21.5
21.6
21.2.1
绝对路径引用.................................................................................................................... 397
21.2.2
相对路径引用.................................................................................................................... 398
影片剪辑的属性和方法 ........................................................................................ 399 21.3.1
影片剪辑属性的运用及统览 ............................................................................................ 400
21.3.2
影片剪辑方法的运用及统览 ............................................................................................ 402
使用脚本来控制影片剪辑 .................................................................................... 404 21.4.1
控制影片剪辑的播放........................................................................................................ 404
21.4.2
改变影片剪辑的位置和外观 ............................................................................................ 405
21.4.3
利用 with 语句来减少重复工作 ....................................................................................... 405
21.4.4
影片剪辑的复制和删除及同名方法与函数的区别 ........................................................ 405
21.4.5
捆绑影片剪辑.................................................................................................................... 408
21.4.6
在复制和捆绑影片剪辑时传递参数 ................................................................................ 409
21.4.7
装载和卸载 SWF 文件...................................................................................................... 409
21.4.8
在装载 SWF 文件时向其传递变量来控制其播放 .......................................................... 412
21.4.9
动态加载 JPEG 图像......................................................................................................... 413
21.4.10
把 SWF 文件装载到指定的级........................................................................................ 414
21.4.11
使影片剪辑可拖动 .......................................................................................................... 414
21.4.12
判断可拖动影片剪辑的降落目标——制作废纸篓 和废纸范例................................. 415
21.4.13
检测影片剪辑的碰撞——将废纸篓和废纸范例升级 到点语法................................. 416
21.4.14
创建空影片剪辑.............................................................................................................. 418
21.4.15
在运行时刻把影片剪辑作为遮罩打开和关闭 .............................................................. 419
21.4.16
动态的创建文本对象...................................................................................................... 419
于运行时刻在影片剪辑中绘图 ............................................................................ 420 21.5.1
绘制直线并进行纯色填充................................................................................................ 420
21.5.2
制作一个可信手涂鸦的 Flash 画板 ................................................................................. 421
关于影片剪辑的深度 ............................................................................................ 422 21.6.1
获知影片剪辑实例的深度................................................................................................ 423
21.6.2
获得下一个可用的深度.................................................................................................... 423
21.6.3
获知位于特定深度中的影片剪辑实例 ............................................................................ 423
21.6.4
交换影片剪辑实例的深度................................................................................................ 423 ·XV·
Note
Flash 第一步——ActionScript 编程篇 21.7
Note
将装载的 SWF 文件对_root 的引用锁定为对 其自身时间线的引用 ............... 424
第 22 章 事件、响应与交互....................................................................................... 425 22.1 事件、响应与交互的概念和相互关系................................................................. 426 22.2 如何处理事件 ........................................................................................................ 426
22.3
22.2.1
使用事件处理器................................................................................................................ 426
22.2.2
使用事件处理器方法——突破事件处理器的局限 ........................................................ 427
22.2.3
使用事件侦听器——突破事件处理器局限的另一种方法............................................. 430
几个简单的交互实例 ............................................................................................ 432 22.3.1
创建自定义的鼠标指针——制作一个气鼓鱼鼠标指针................................................. 432
22.3.2
捕获焦点检测输入——检查表单填写时的信息有效性................................................. 433
22.3.3
捕获按键——制作一门可左右移动的火炮 .................................................................... 434
第 23 章 使用函数 ..................................................................................................... 437 23.1 函数的概念 ............................................................................................................ 438 23.2 Flash 内建函数概览及使用................................................................................... 438 23.3 创建自定义函数 .................................................................................................... 440
23.4
23.3.1
创建既不接收参数也不返回值的自定义函数 ................................................................ 440
23.3.2
创建能接收参数的自定义函数 ........................................................................................ 442
23.3.3
创建能返回值的自定义函数 ............................................................................................ 443
函数的作用域 ........................................................................................................ 445
第 24 章 使用内建类 ................................................................................................. 447 24.1 类、对象、实例化的概念及相互关系................................................................. 448 24.2 Flash 内建类概览................................................................................................... 448 24.3 判断是否需要从内建类创建新对象..................................................................... 451 24.4 使用 Array 类来创建和处理数组 ......................................................................... 452
24.5
24.6
24.4.1
数组的概念........................................................................................................................ 452
24.4.2
创建和访问数组................................................................................................................ 452
24.4.3
向数组中追加元素............................................................................................................ 455
24.4.4
从数组中删除、替换和拼接元素 .................................................................................... 456
24.4.5
把数组转换成字符串——回车符被吃掉问题的解决方案............................................. 456
24.4.6
把数组作为堆栈来使用及其应用——跟踪用户的访问................................................. 457
24.4.7
对数组中的元素排序........................................................................................................ 459
24.4.8
创建和访问多维数组........................................................................................................ 461
24.4.9
利用数组访问运算符在循环中批处理对象 .................................................................... 462
使用 Sound 类来控制和装载声音 ........................................................................ 463 24.5.1
对于如何才能控制声音的思考和分析 ............................................................................ 463
24.5.2
控制声音的开关................................................................................................................ 463
24.5.3
控制音量的大小................................................................................................................ 464
24.5.4
装载外部的 MP3 文件 ...................................................................................................... 466
使用 Color 类来控制颜色 ..................................................................................... 468 24.6.1
简单的设置影片剪辑实例的颜色 .................................................................................... 468 ·XVI·
目
录
24.6.2
通过编程实现影片剪辑实例的颜色渐变 ........................................................................ 469
24.6.3
突破程控渐变时遭遇的“色障” .................................................................................... 470
使用 Text 相关类来控制和格式化文本 ............................................................... 471
24.7
24.7.1
创建可滚动的文本域........................................................................................................ 471
24.7.2
在运行时刻改变文本对象的特性和内容 ........................................................................ 474
24.7.3
在文本域中使用 HTML.................................................................................................... 475
24.7.4
使用 CSS 来格式化 HTML 文本...................................................................................... 476
24.7.5
监听文本域上发生的事情................................................................................................ 477
使用 String 类来处理字符串................................................................................. 477
24.8
24.8.1
从字符串中提取子字符串................................................................................................ 477
24.8.2
拆分和合并字符串............................................................................................................ 478
24.8.3
获取指定索引处的字符和字符的 ASCII 值.................................................................... 479
24.8.4
在字符串中进行搜索........................................................................................................ 480
24.8.5
对字符串进行大小写转换................................................................................................ 481
使用 Date 类来获取和设置时间 ........................................................................... 481
24.9
24.9.1
创建一个新的 Date 对象 .................................................................................................. 484
24.9.2
本地时间和世界时之间的区别 ........................................................................................ 484
24.9.3
构造一只电子钟................................................................................................................ 485
24.10 使用 MovieClipLoader 类来预装载外部的 SWF 文件或 JPEG 文件............... 486 24.11 使用 Microphone 类来捕获和播放麦克风音频源 ............................................. 488 24.12 使用 Camera 类来捕获和播放摄像头视频源 .................................................... 489 24.13 使用 Video 相关类来装载和播放 FLV 文件...................................................... 491 24.13.1
装载和播放 FLV 文件的过程......................................................................................... 491
24.13.2
创建一个全功能的 FLV 播放器..................................................................................... 492
24.14 24.15
使用 SharedObject 类创建 Flash 版的 Cookie.................................................... 494 使用 LocalConnection 类在不同的 SWF 文件间通信 ....................................... 496
24.15.1
使用 LocalConnection 类进行通信的过程..................................................................... 496
24.15.2
两个 Flash 间一次探讨“吃了什么”的通信................................................................ 497
第 25 章 创建自定义的类 .......................................................................................... 499 25.1 创建仅能用于当前电影的类 ................................................................................ 500
25.2
25.3
25.1.1
利用构造器函数创建自定义的类 .................................................................................... 500
25.1.2
对自定义的类进行更严格的封装 .................................................................................... 501
25.1.3
用 prototype 属性和__proto__属性来实现类的继承....................................................... 502
25.1.4
如何把属性和方法添加到类的原型 ................................................................................ 504
创建可用于所有电影的类 .................................................................................... 504 25.2.1
类的创建和使用的一般过程及要点 ................................................................................ 505
25.2.2
创建一个 Egg 类 ............................................................................................................... 505
25.2.3
使用 Egg 类 ....................................................................................................................... 507
那些“顶级类”是如何创建的 ............................................................................ 508 25.3.1
类成员和实例成员的区别................................................................................................ 508
25.3.2
创建自己的顶级类............................................................................................................ 509 ·XVII·
Note
Flash 第一步——ActionScript 编程篇 25.4 25.5
Note 25.6
25.7 25.8
25.9
关于限制对类的成员的访问 ................................................................................ 510 关于类的继承 .........................................................................................................511 25.5.1
类的继承的概念.................................................................................................................511
25.5.2
为自定义的类创建子类.................................................................................................... 512
25.5.3
用自定义的类来扩展内建类的能力 ................................................................................ 513
25.5.4
如何来扩展 MovieClip 类的能力..................................................................................... 513
创建和使用接口 .................................................................................................... 514 25.6.1
什么是接口........................................................................................................................ 514
25.6.2
如何创建接口及实现接口的类 ........................................................................................ 515
对类进行更严格的封装 ........................................................................................ 517 类的编译 ................................................................................................................ 518 25.8.1
什么是类路径.................................................................................................................... 518
25.8.2
添加更多的类路径............................................................................................................ 518
打包你的类 ............................................................................................................ 519
第 26 章 与外部进行数据通信及集成其他 Web 技术 ................................................. 521 26.1 使用 loadVariables 装载外部文本文件中的变量................................................. 522 26.1.1 MIME是什么?application/x-www-form-urlencoded又是什么?................................... 522
26.2
26.3
26.1.2
使用“最末变量法”判断数据装载是否完成 ................................................................ 522
26.1.3
装载中文字符时会出现乱码的根本原因是什么 ............................................................ 525
26.1.4
使用onData事件处理器方法来判断数据装载是否完成 ................................................. 526
关于 CGI ................................................................................................................ 526 26.2.1
什么是CGI?CGI的工作过程是怎样的 .......................................................................... 527
26.2.2
CGI约定中你应该了解的重要知识 ................................................................................. 527
26.2.3
什么是环境变量................................................................................................................ 528
26.2.4
Perl 和 CGI 是什么关系.................................................................................................... 530
CGI 与 ASP、PHP 的对比.................................................................................... 530 26.3.1
什么是 ASP ....................................................................................................................... 531
26.3.2
什么是 PHP ....................................................................................................................... 532
26.3.3
CGI 的长处和短处............................................................................................................ 534
26.3.4 ASP 的长处和短处 ........................................................................................................... 536 26.3.5
26.4 26.5
26.6
26.7
PHP 的长处和短处 ........................................................................................................... 536
为什么我推荐你使用 Perl ..................................................................................... 537 如何把你的计算机配置成 Web 服务器 ............................................................... 538 26.5.1
安装 IIS.............................................................................................................................. 538
26.5.2
在你的 Web 服务器中建立网站....................................................................................... 538
安装 ActivePerl ...................................................................................................... 543 26.6.1
让 Web 服务器知道 Perl 解释器的位置........................................................................... 543
26.6.2
虚拟目录有什么作用........................................................................................................ 547
26.6.3
编写并运行你的第一个 Perl CGI 程序............................................................................ 548
用 loadVariables 装载 CGI 程序返回的数据——制作一个访问量计数器 ........ 548 26.7.1
服务器端 CGI 程序的编写 ............................................................................................... 549 ·XVIII·
目
26.7.2
录
客户端 Flash 程序的编写 ................................................................................................. 550
使用 LoadVars 类发送和装载数据——制作一个留言板 ................................... 552
26.8
26.8.1
服务器端 CGI 程序的编写 ............................................................................................... 552
26.8.2
客户端 Flash 程序的编写 ................................................................................................. 557
使用 MySQL 数据库 ............................................................................................. 560
26.9
26.9.1
什么是 MySQL 数据库..................................................................................................... 560
26.9.2
如何下载并安装 MySQL 数据库 ..................................................................................... 561
26.9.3
如何启动 MySQL.............................................................................................................. 561
26.9.4
关于管理和操作 MySQL 数据库的一些重要知识 ......................................................... 562
26.9.5
创建你的第一个 MySQL 数据库 ..................................................................................... 563
26.9.6
为 Perl 安装数据库接口模块和数据库驱动程序模块 .................................................... 565
26.9.7
学习两句经典的 SQL 语句 .............................................................................................. 566
26.9.8
一个 Flash+Perl+MySQL 的应用——服务器端 CGI 程序的编写 ................................ 567
26.9.9
一个 Flash+Perl+MySQL 的应用——客户端 Flash 程序 的编写 ................................. 571
26.10
使用 XML ............................................................................................................ 573
26.10.1
澄清关于 XML 的一些重要概念 ................................................................................... 573
26.10.2
使用 XML 类读取并显示 XML 文档中的信息............................................................. 576
26.10.3
用 Perl 把从数据库中返回的数据转换成 XML 格式 ................................................... 580
26.11
实现套接字通信................................................................................................... 583
26.11.1
了解关于套接字通信的重要概念 .................................................................................. 584
26.11.2
实现一个套接字通信——服务器端程序的编写........................................................... 585
26.11.3
实现一个套接字通信——客户端程序的编写(Perl 版) ........................................... 588
26.11.4
实现一个套接字通信——客户端程序的编写(Flash 版) ......................................... 589
26.12 在 Flash 和宿主环境之间进行通信.................................................................... 591 26.12.1
何时该用 fscommand 函数,何时该用 Flash Player 方法 ............................................ 592
26.12.2
从 Flash 到 JavaScript 的通信......................................................................................... 592
26.12.3
从 JavaScript 到 Flash 的通信......................................................................................... 594
26.12.4
可用的 Flash Player 方法和事件 .................................................................................... 596
26.12.5
只在 IE 浏览器中可用的 Flash Player 属性和事件....................................................... 600
26.12.6
可以在 JavaScript 中控制的 Flash 电影属性 ................................................................. 601
26.12.7
用 fscommand()函数来控制 Flash Player ....................................................................... 602
26.13 26.14
如何用 Flash 来调用和执行可执行程序............................................................ 603 如何避免装载缓存中的变量和 SWF 文件 ........................................................ 604
26.14.1
如何避免装载缓存中的变量 .......................................................................................... 604
26.14.2
如何避免装载缓存中的 SWF 文件 ................................................................................ 604
第 4 部分
组件篇
第 27 章 认识组件 ..................................................................................................... 609 27.1 什么是组件 ............................................................................................................ 610 27.2 组件是我必需的东西吗 ........................................................................................ 610 27.3 有关组件的一些重要知识 .....................................................................................611 ·XIX·
Note
Flash 第一步——ActionScript 编程篇 第 28 章 使用用户界面组件创建应用程序 ................................................................. 613 28.1 创建一个交友系统 ................................................................................................ 614
Note
28.2
28.1.1
客户端 Flash 程序的开发 ................................................................................................. 614
28.1.2
服务器端 Perl CGI 程序的开发........................................................................................ 619
为交友系统添加一个提交确认对话框................................................................. 623
第 29 章 使用数据组件进行数据通信和数据操作....................................................... 627 29.1 什么是 Web 服务 ................................................................................................... 628 29.2 什么是 WSDL ........................................................................................................ 628 29.3 如何编写一个 Web 服务 ....................................................................................... 629 29.4 为 Web 服务开发客户端时如何突破沙箱安全机制的限制................................ 630 29.5 如何编写一个政策文件 ........................................................................................ 631 29.6 利用 Web 服务构建一个多语种互译系统 ........................................................... 633
29.7
29.8
29.6.1
连接到一个公共的 Web 服务........................................................................................... 633
29.6.2
创建一个用户界面并将组件与 Web 服务绑定在一起 ................................................... 634
利用 Web 服务构建一个实时股票报价系统 ....................................................... 637 29.7.1
连接到一个公共的股票报价 Web 服务 ........................................................................... 637
29.7.2
创建一个用户界面以供用户使用该股票报价服务 ........................................................ 638
29.7.3
定制股票信息的显示........................................................................................................ 640
29.7.4
显示股票交易量................................................................................................................ 641
29.7.5
显示额外的股票信息........................................................................................................ 643
29.7.6
经由 DataSet 组件访问数据 ............................................................................................. 644
29.7.7
添加两个导航按钮............................................................................................................ 648
29.7.8
编辑和更新数据................................................................................................................ 649
29.7.9
修改列标题........................................................................................................................ 650
使用 XML 数据组件来读取和更新 XML 数据库 .............................................. 652 29.8.1
创建用户界面并读取 XML 数据库 ................................................................................. 652
29.8.2
编辑和更新数据................................................................................................................ 655
第 5 部分
专题篇
第 30 章 使用项目和站点来管理文档和 进行版本控制.............................................. 661 30.1 使用项目来管理和组织在逻辑上相关的文档..................................................... 662 30.2 对项目中所涉及的文档进行版本控制................................................................. 663 30.2.1
什么是版本控制................................................................................................................ 663
30.2.2
如何在 Flash 中对项目中的文档进行版本控制.............................................................. 664
第 31 章 使用屏幕来创建幻灯片演示文稿 ................................................................. 667 31.1 什么是屏幕 ............................................................................................................ 668 31.2 幻灯演示和表单应用两种屏幕的区别................................................................. 668 31.3 屏幕文档的体系结构和重要概念......................................................................... 669 31.4 创建一个标准的幻灯片演示文稿......................................................................... 670 31.5 在幻灯片切换中应用“转变”动画效果............................................................. 675 ·XX·
目
31.6
录
创建一个视频幻灯片——利用线索点将视频内容和文字说明完美结合......... 675
第 32 章 使用字符串面板创建同一 Flash 电影的多个语言版本 ................................. 679 32.1 为同一 Flash 电影实现多语言版本的原理 .......................................................... 680 32.2 创建一个支持 3 种语言的 Flash 电影.................................................................. 680 第 33 章 使用 Flash 扩展 .......................................................................................... 685 33.1 什么是 Flash 扩展.................................................................................................. 686 33.2 如何安装和使用 Flash 扩展.................................................................................. 686
第 6 部分
综合应用篇
第 34 章 综合应用 ..................................................................................................... 691 34.1 为现有的 Flash 电影创建预装载器...................................................................... 692 34.2 创建运动缓冲效果 ................................................................................................ 693 34.3 创建雪花飘落效果 ................................................................................................ 695 34.4 创建放大镜效果 .................................................................................................... 696 34.5 创建放电效果 ........................................................................................................ 702 34.6 创建超高速效果 .................................................................................................... 708 34.7 创建在线人数统计器 ............................................................................................ 709 34.8 如何将在线绘图保存成 SWF 文件 ...................................................................... 715 34.9 如何在 Flash 程序中发送电子邮件...................................................................... 719
·XXI·
Note