目录 313
第3部分 ActionScript篇 313
第18章 了解在Flash中的编程工作 313
18.1 像软件设计师那样思考问题 314
18.1.1 要总想着逃避编程 314
18.1.2 认真地编写设计说明书 314
18.1.3 要想到还有其他的可能 315
18.2 面向对象的软件开发中的重要概念 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
18.3 好的编程风格 318
18.3.1 好的名字 319
18.3.2 减少重复 319
18.3.3 总是注释 320
18.3.4 分离代码和数据 322
18.4 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
19.2 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
19.3 使用变量 333
19.3.1 变量的命名约定和变量的非特定数据类型的声明 333
19.3.2 在声明变量时为其严格指定数据类型 334
19.3.3 变量在程序中的运用 335
19.3.4 变量的作用域和变量冲突 337
19.4 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
19.5 控制程序的流程 351
19.5.1 条件语句 352
19.5.2 循环语句 357
19.6 关于全局函数和内建类 363
第20章 编写和调试程序 365
20.1 使用“动作”面板编写脚本 366
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
20.2 调试脚本 377
20.2.1 发现和定义bug——再现bug和给bug分类 377
20.2.2 修改bug——试着成为一个愤世嫉俗者 379
20.2.3 预防bug——好的编程风格及追溯bug产生的时期 380
20.3 使用调试器 380
20.3.1 调试器的布局 381
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
20.4 使用输出窗口和trace语句 389
20.4.1 列出电影中的对象和变量 389
20.4.2 使用trace语句和throw语句 390
第21章 使用影片剪辑 393
21.1 影片剪辑的体系结构:级、深度、层三者的关系 394
21.2 绝对路径引用和相对路径引用 397
21.2.1 绝对路径引用 397
21.2.2 相对路径引用 398
21.3 影片剪辑的属性和方法 399
21.3.1 影片剪辑属性的运用及统览 400
21.3.2 影片剪辑方法的运用及统览 402
21.4 使用脚本来控制影片剪辑 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
21.5 于运行时刻在影片剪辑中绘图 420
21.5.1 绘制直线并进行纯色填充 420
21.5.2 制作一个可信手涂鸦的Flash画板 421
21.6 关于影片剪辑的深度 422
21.6.1 获知影片剪辑实例的深度 423
21.6.2 获得下一个可用的深度 423
21.6.3 获知位于特定深度中的影片剪辑实例 423
21.6.4 交换影片剪辑实例的深度 423
21.7 将装载的SWF文件对_root的引用锁定为对其自身时间线的引用 424
第22章 事件、响应与交互 425
22.1 事件、响应与交互的概念和相互关系 426
22.2 如何处理事件 426
22.2.1 使用事件处理器 426
22.2.2 使用事件处理器方法——突破事件处理器的局限 427
22.2.3 使用事件侦听器——突破事件处理器局限的另一种方法 430
22.3 几个简单的交互实例 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.3.1 创建既不接收参数也不返回值的自定义函数 440
23.3.2 创建能接收参数的自定义函数 442
23.3.3 创建能返回值的自定义函数 443
23.4 函数的作用域 445
第24章 使用内建类 447
24.1 类、对象、实例化的概念及相互关系 448
24.2 Flash内建类概览 448
24.3 判断是否需要从内建类创建新对象 451
24.4 使用Array类来创建和处理数组 452
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
24.5 使用Sound类来控制和装载声音 463
24.5.1 对于如何才能控制声音的思考和分析 463
24.5.2 控制声音的开关 463
24.5.3 控制音量的大小 464
24.5.4 装载外部的MP3文件 466
24.6 使用Color类来控制颜色 468
24.6.1 简单的设置影片剪辑实例的颜色 468
24.6.2 通过编程实现影片剪辑实例的颜色渐变 469
24.6.3 突破程控渐变时遭遇的“色障” 470
24.7 使用Text相关类来控制和格式化文本 471
24.7.1 创建可滚动的文本域 471
24.7.2 在运行时刻改变文本对象的特性和内容 474
24.7.3 在文本域中使用HTML 475
24.7.4 使用CSS来格式化HTML文本 476
24.7.5 监听文本域上发生的事情 477
24.8 使用String类来处理字符串 477
24.8.1 从字符串中提取子字符串 477
24.8.2 拆分和合并字符串 478
24.8.3 获取指定索引处的字符和字符的ASCII值 479
24.8.4 在字符串中进行搜索 480
24.8.5 对字符串进行大小写转换 481
24.9 使用Date类来获取和设置时间 481
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 使用SharedObject类创建Flash版的Cookie 494
24.15 使用LocalConnection类在不同的SWF文件间通信 496
24.15.1 使用LocalConnection类进行通信的过程 496
24.15.2 两个Flash间一次探讨“吃了什么”的通信 497
第25章 创建自定义的类 499
25.1 创建公能用于当前电影的类 500
25.1.1 利用构造器函数创建自定义的类 500
25.1.2 对自定义的类进行更严格的封装 501
25.1.3 用prototype属性和_proto_属性来实现类的继承 502
25.1.4 如何把属性和方法添加到类的原型 504
25.2 创建可用于所有电影的类 504
25.2.1 类的创建和使用的一般过程及要点 505
25.2.2 创建一个Egg类 505
25.2.3 使用Egg类 507
25.3 那些“顶级类”是如何创建的 508
25.3.1 类成员和实例成员的区别 508
25.3.2 创建自己的顶级类 509
25.4 关于限制对类的成员的访问 510
25.5 关于类的继承 511
25.5.1 类的继承的概念 511
25.5.2 为自定义的类创建子类 512
25.5.3 用自定义的类来扩展内建类的能力 513
25.5.4 如何来扩展MovieClip类的能力 513
25.6 创建和使用接口 514
25.6.1 什么是接口 514
25.6.2 如何创建接口及实现接口的类 515
25.7 对类进行更严格的封装 517
25.8 类的编译 518
25.8.1 什么是类路径 518
25.8.2 添加更多的类路径 518
25.9 打包你的类 519
第26章 与外部进行数据通信及集成其他Web技术 521
26.1 使用loadVariables装载外部文本文件中的变量 522
26.1.1 MIME是什么?application/x-www-form-urlencoded又是什么? 522
26.1.2 使用“最末变量法”判断数据装载是否完成 522
26.1.3 装载中文字符时会出现乱码的根本原因是什么 525
26.1.4 使用onData事件处理器方法来判断数据装载是否完成 526
26.2 关于CGI 526
26.2.1 什么是CGI?CGI的工作过程是怎样的 527
26.2.2 CGI约定中你应该了解的重要知识 527
26.2.3 什么是环境变量 528
26.2.4 Perl和CGI是什么关系 530
26.3 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 PHP的长处和短处 536
26.4 为什么我推荐你使用Perl 537
26.5 如何把你的计算机配置成Web服务器 538
26.5.1 安装IIS 538
26.5.2 在你的Web 服务器中建立网站 538
26.6 安装ActivePerl 543
26.6.1 让Web服务器知道Perl解释器的位置 543
26.6.2 虚拟目录有什么作用 547
26.6.3 编写并运行你的第一个Perl CGI程序 548
26.7 用loadVariables装载CGI程序返回的数据——制作一个访问量计数器 548
26.7.1 服务器端CGI程序的编写 549
26.7.2 客户端Flash程序的编写 550
26.8 使用LoadVars类发送和装载数据——制作一个留言板 552
26.8.1 服务器端CGI程序的编写 552
26.8.2 客户端Flash程序的编写 557
26.9 使用MySQL数据库 560
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 如何用Flash来调用和执行可执行程序 603
26.14 如何避免装载缓存中的变量和SWF文件 604
26.14.1 如何避免装载缓存中的变量 604
26.14.2 如何避免装载缓存中的SWF文件 604
第4部分 组件篇 609
第27章 认识组件 609
27.1 什么是组件 610
27.2 组件是我必需的东西吗 610
27.3 有关组件的一些重要知识 611
第28章 使用用户界面组件创建应用程序 613
28.1 创建一个交友系统 614
28.1.1 客户端Flash程序的开发 614
28.1.2 服务器端Perl CGI程序的开发 619
28.2 为交友系统添加一个提交确认对话框 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.6.1 连接到一个公共的Web服务 633
29.6.2 创建一个用户界面并将组件与Web服务绑定在一起 634
29.7 利用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
29.8 使用XML数据组件来读取和更新XML数据库 652
29.8.1 创建用户界面并读取XML数据库 652
29.8.2 编辑和更新数据 655
第5部分 专题篇 661
第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
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部分 综合应用篇 691
第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