/* * Flex 3 in Action 中文版-目录 * 2009-3-20,为之漫笔, * http://www.cn-cuckoo.com */ 序 自序 致谢 本书内容 第一部分:基础知识 第1章 认识Flex 1.1 Web应用程序为何大行其道 1.2 快速发展,但代价也很大 1.3 RIA给出了解决方案 1.3.1 他们什么都想要 1.3.2 RIA的解决之道 1.3.3 RIA的原理 1.4 实现RIA的竞争技术 1.4.1 Adobe的Flex 1.4.2 微软的Silverlight 1.4.3 Sun Microsystems的JavaFx 1.5 Flex与Web应用程序 1.5.1 Web应用程序基于文档 1.5.2 浏览器的角色:中转站和文档渲染器 1.5.3 RWA——终点站 1.5.4 跨平台问题 1.5.5 何来丰富性 1.5.6 AJAX的通信限制 1.5.7 并行不悖 1.6 认识Flex 1.6.1 利用Adobe Flash的优势 1.6.2 Flex开发中可以使用JavaScript 1.6.3 Flex技术体系 1.6.4 Flex的基本工作原理 1.6.5 事件、事件,还是事件 1.7 Flex 3的新特性 1.8 小结 第2章 从零开始 2.1 经济的Flex开发方式 2.1.1 建立编译环境 2.1.2 建立编辑环境 2.1.3 第三步(但愿读者还感兴趣) 2.2 使用Flex Builder做真正的开发 2.2.1 产品价格表 2.2.2 获得Flex Builder 2.3 探索Flex Builder 2.4 视图与视角 2.4.1 预定义的视角 2.4.2 切换视角 2.4.3 自定义视角 2.5 第一个项目——Hello World 2.5.1 创建项目 2.5.2 输入代码 2.5.3 编译和运行 2.5.4 开始编码 2.6 使用设计模式 2.7 内置的帮助 2.7.1 面向对象的语言及其API 2.7.2 访问API参考 2.7.3 研读API参考 2.8 MXML与ActionScript速写 2.8.1 MXML的结构 2.8.2 MXML与ActionScript的关系 2.8.3 ActionScript处理事件 2.9 小结 第3章 深入ActionScript 3.1 注释 3.1.1 行内注释 3.1.2 多行注释 3.2 变量 3.2.1 变量名 3.2.2 严格数据类型 3.2.3 静态与动态类型检查 3.2.4 原始和复杂数据类型 3.3 循环 3.3.1 for(初始值;条件;递增) 3.3.2 for(属性名 in 数组/对象) 3.3.3 for(项 in 数组/对象) 3.3.4 while(条件) 3.3.5 do…while(条件) 3.4 条件语句(if和switch) 3.4.1 if…else 3.4.2 switch 3.5 数组 3.5.1 索引数组 3.5.2 关联数组 3.6 ActionScript特色语法 3.6.1 花括号 3.6.2 逻辑操作符及快捷方式 3.7 函数、类和包 3.7.1 创建函数 3.7.2 分离ActionScript代码 3.8 简单的数据绑定 3.8.1 同样,仍然还是事件 3.8.2 双向绑定 3.9 小结 第4章 布局和容器 4.1 绝对布局 4.2 基于约束的布局 4.2.1 基本约束 4.2.2 增强约束 4.3 自动布局 4.4 可变和固定大小 4.4.1 可变大小 4.4.2 固定大小 4.5 容器 4.5.1 Application容器 4.5.2 Canvas容器 4.5.3 Box、HBox和VBox容器 4.5.4 Panel容器 4.5.5 ApplicationControlBar和ControlBar容器 4.5.6 DividedBox、HDividedBox和VDividedBox容器 4.5.7 Form容器 4.5.8 Grid容器 4.5.9 Tile容器 4.6 使用Repeater组件实现动态布局 4.6.1 dataProvider简介 4.6.2 Repeater的属性和事件 4.6.3 创建Repeater 4.6.4 使用Repeater事件 4.7 小结 第5章 表单与捕获用户输入 5.1 id属性 5.2 Text控件 5.3 Date控件 5.4 Numeric控件 5.5 Button控件 5.5.1 带Bar的Button控件 5.5.2 PopUpButtont和PopUpMenuButton 5.6 选单控件 5.7 访问控件的值 5.7.1 向函数传递值 5.7.2 向函数传递事件 5.7.3 直接访问属性 5.7.4 应该选择哪种方式 5.8 小结 第6章 验证用户输入 6.1 验证简介 6.2 内置验证器 6.2.1 Validator 6.2.2 StringValidator 6.2.3 NumberValidator 6.2.4 DateValidator 6.2.5 EmailValidator 6.2.6 CreditCardValidator 6.2.7 CurrencyValidator 6.2.8 PhoneNumberValidator 6.2.9 RegExpValidator 6.2.10 SocialSecurityValidator 6.2.11 ZipCodeValidator 6.3 实时验证 6.4 提交值验证 6.5 通过性验证 6.6 脚本式验证 6.7 验证技巧 6.7.1 验证器总是检查所有条件吗 6.7.2 验证输入的值与条件匹配 6.7.3 控制由什么来触发验证操作 6.8 小结 第7章 格式化数据 7.1 内置格式化程序 7.1.1 Formatter 7.1.2 NumberFormatter 7.1.3 CurrencyFormatter 7.1.4 DateFormatter 7.1.5 PhoneFormatter 7.1.6 ZipCodeFormatter 7.1.7 SwitchSymbolFormatter 7.2 实时格式化 7.3 脚本式格式化 7.3.1 在函数中使用格式化程序组件 7.3.2 在函数中创建格式化程序 7.4 处理格式化错误 7.5 小结 第8章 DateGrid、列表和树 8.1 基于列表的组件 8.1.1 ListBase和AdvancedListBase的属性 8.1.2 ListBase事件 8.2 dataProvider与集合 8.2.1 为dataProvider提供数据 8.2.2 集合的类型 8.2.3 集合的使用者 8.3 初始化集合 8.4 填充集合 8.4.1 List 8.4.2 HorizontalList 8.4.3 TileList 8.4.4 DataGrid 8.4.5 Tree 8.4.6 AdvancedDataGrid 8.5 与列表交互 8.5.1 列表事件 8.5.2 向函数中传递事件 8.5.3 向函数中传递数据 8.5.4 直接访问被选定的行 8.5.5 绑定到被选定的行 8.5.6 通过其他事件响应操作 8.6 小结 第9章 自定义列表 9.1 标签函数 9.1.1 标签函数的类型 9.1.2 使用单列标签函数 9.1.3 使用多列标签函数 9.1.4 标签函数的用途 9.2 项渲染器 9.2.1 渲染器类型 9.2.2 创建(常规)项渲染器 9.2.3 向项渲染器中添加条件逻辑 9.2.4 创建行内项渲染器 9.2.5 创建混入项渲染器 9.3 项编辑器 9.3.1 启用项编辑器 9.3.2 创建项编辑器 9.3.3 项编辑事件 9.4 组合项渲染器和项编辑器 9.5 高级项渲染器 9.5.1 AdvancedDataGridRendererProvider 9.5.2 引用列 9.5.3 跨列使用高级项渲染器 9.5.4 实现通行显示 9.6 筛选函数 9.7 小结 第二部分:流程与结构 第10章 事件 10.1 事件系统 10.1.1 类似邮局的事件系统 10.1.2 事件发送系统 10.1.3 事件传播的阶段 10.2 发送和接收事件 10.2.1 添加事件侦听器 10.2.2 绑定事件 10.2.3 移除事件侦听器 10.3 自定义事件 10.3.1 使用分派程序发送事件 10.3.2 创建自定义事件 10.3.3 停止事件传播 10.3.4 向组件中添加事件元数据 10.4 小结 第11章 应用程序导航 11.1 为菜单和菜单栏提供数据 11.1.1 嵌套的数组 11.1.2 嵌套的数组集合 11.1.3 Model 11.1.4 XML组件及类 11.1.5 XMLList组件 11.1.6 XMLListCollection组件及类 11.1.7 选定数据类型 11.2 菜单 11.2.1 创建菜单 11.2.2 定位菜单 11.2.3 自定义菜单项 11.3 菜单栏 11.3.1 创建菜单栏 11.3.2 定位菜单栏 11.3.3 自定义菜单栏中的项 11.3.4 处理用户与菜单栏的交互 11.4 ViewStack 11.4.1 创建ViewStack 11.4.2 为ViewStack添加导航功能 11.4.3 确定当前选定的视图 11.4.4 处理用户与ViewStack的交互 11.5 TabNavigator 11.5.1 创建选项卡式导航 11.5.2 处理用户与TabNavigator的交互 11.6 Accordion 11.6.1 创建Accordion 11.6.2 填充Accordion 11.6.3 处理用户与Accordion的交互 11.7 小结 第12章 弹出式窗口 12.1 创建弹出式窗口 12.1.1 创建标题窗口 12.1.2 使用PopUpManager打开窗口 12.1.3 关闭弹出式窗口 12.2 控制窗口位置 12.2.1 使用centerPopUp()方法 12.2.2 计算窗口的位置 12.3 设置窗口的透明度 12.4 弹出式窗口与数据 12.4.1 从弹出式窗口中取得数据 12.4.2 发送事件 12.4.3 取出数据 12.4.4 向窗口中发送数据 12.5 对话框 12.5.1 创建简单的对话框 12.5.2 挖掘对话框的潜力 12.5.3 高级对话框 12.5.4 打扮对话框 12.6 小结 第13章 视图状态 13.1 理解视图状态 13.2 Flex中的视图状态 13.2.1 与视图状态有关的类 13.2.2 视图状态实例 13.2.3 定义视图状态() 13.2.4 视图状态过渡 13.2.5 组件的状态 13.3 小结 第14章 整合数据服务 14.1 什么是WSDL文档 14.2 理解WSDL文档 14.2.1 理解WSDL文档:操作 14.2.2 理解WSDL文档:输入类型 14.2.3 理解WSDL文档:输出对象 14.3 使用WebService组件 14.3.1 用ActionScript创建WebService组件 14.3.2 调用WebService组件 14.3.3 处理结果 14.3.4 ResultEvent 14.3.5 处理结果 14.3.6 FaultEvent 14.3.7 使用异步记号 14.4 使用HTTPService取得结果 14.4.1 连接HTTP Web服务 14.4.2 显式参数绑定 14.5 使用RemoteObject标签 14.6 使用URLLoader 14.7 使用Flex Import Web Service向导 14.7.1 Import Web Service向导 14.7.2 使用生成的Web服务代码 14.8 小结 第15章 操作XML 15.1 XML基础知识 15.1.1 什么是XML 15.1.2 XML的优点 15.1.3 XML的缺点 15.1.4 XML语法及规则 15.1.5 DTD与XML Schema 15.1.6 命名空间 15.2 XML组件和类 15.2.1 XML组件 15.2.2 XML类 15.2.3 XMLList组件 15.2.4 XMLList类 15.2.5 XMLListCollection组件和类 15.3 加载外部XML数据 15.4 XML中的绑定 15.4.1 绑定自XML 15.4.2 绑定到XML 15.5 ECMAScript for XML(E4X) 15.5.1 E4X语法 15.5.2 操作XML结构 15.6 小结 第16章 对象和类 16.1 5分钟理解OO理论 16.1.1 对象和类的关系 16.1.2 对象有属性和方法 16.1.3 继承 16.1.4 封装和耦合 16.1.5 对象:无处不在 16.2 操作对象 16.2.1 进一步了解对象 16.2.2 对象的方法 16.2.3 方法的参数 16.2.4 方法的返回值 16.2.5 对象的属性 16.3 创建类 16.3.1 创建类文件 16.3.2 指定包名 16.3.3 命名类 16.3.4 类修饰符 16.3.5 超类:扩展类 16.3.6 接口 16.3.7 分析类代码 16.4 添加属性 16.5 添加getter/setter方法 16.6 在类中创建方法 16.7 小结 第17章 自定义组件 17.1 什么是自定义组件 自定义组件示例 17.2 自定义组件的工作原理 17.2.1 简单组件与复合组件 17.2.2 实现方式 17.3 创建简单自定义组件 17.4 传递参数 17.4.1 通过函数传递值 17.4.2 通过属性传递值 17.4.3 使用setter函数作为属性代理 17.4.4 使用绑定参数 17.5 取得值 17.5.1 通过函数取得值 17.5.2 通过属性取得值 17.5.3 使用getter函数作为属性代理 17.6 创建复合自定义组件 17.7 创建ActionScript组件 17.8 自定义事件 传递事件对象 17.9 命名空间和结构 17.9.1 mx命名空间 17.9.2 local命名空间 17.9.3 目录结构与命名空间 17.9.4 ActionScript中的命名空间 17.10 小结 第18章 高级可重用性 18.1 SWC文件 18.2 运行时共享库 18.2.1 标准RSL 18.2.2 在Flex应用程序中使用RSL 18.3 开发模块化的Flex应用程序 18.3.1 组件与模块 18.3.2 创建简单的模块 18.3.3 通过模块API加载MXML模块 18.3.4 通过ActionScript加载和卸载模块 18.3.5 模块的利与弊 18.4 在Flex应用程序的生命周期中添加补丁 使用SWC更新或替换类 18.5 重构 18.6 小结 第三部分:高级应用 第19章 自定义体验 19.1 样式 19.1.1 行内样式 19.1.2 本地样式定义 19.1.3 外部样式表 19.1.4 样式浏览器 19.1.5 处理颜色 19.1.6 透明度 19.1.7 使用渐变 19.1.8 以编程方式操作样式 19.2 嵌入字体 19.2.1 通过字体的系统名嵌入 19.2.2 通过字体文件嵌入 19.2.3 通过CSS使用嵌入的字体 19.3 图像和图标 19.3.1 图像类型 19.3.2 嵌入还是不嵌入 19.3.3 作为变量的图像 19.3.4 图标 19.4 皮肤 19.4.1 皮肤的类型 19.4.2 图形式皮肤中的图像 19.4.3 图形式皮肤中的Flash动画 19.4.4 Flex皮肤设计扩展 19.4.5 图像切割 19.4.6 编程式皮肤 19.5 小结 第20章 使用效果 20.1 什么是效果 20.1.1 触发效果 20.1.2 Flex内置的效果 20.1.3 合成效果 20.2 触发效果 20.3 以编程方式应用效果 20.3.1 使用ActionScript创建效果 20.3.2 只使用ActionScript 20.4 创建合成效果 20.4.1 串行效果 20.4.2 并行效果 20.4.3 组合合成效果 20.5 使用Flex内置的效果 20.5.1 AnimateProperty 20.5.2 Blur 20.5.3 Dissolve 20.5.4 Fade 20.5.5 Glow 20.5.6 Iris 20.5.7 Move 20.5.8 Pause 20.5.9 Resize 20.5.10 Rotate 20.5.11 SoundEffect 20.5.12 Wipe 20.5.13 Zoom 20.6 缓动函数 20.6.1 内置的缓动函数 20.6.2 创建自定义缓动函数 20.7 字体与效果 20.8 小结 第21章 拖放 21.1 拖放过程 21.2 拖放事件 21.3 支持拖放的组件 21.4 在基于列表的组件中启用D&D 21.5 移动与复制 21.6 多项拖动 21.7 双向拖放 21.8 使用D&D实现用户控制的排序 21.9 使用DragManager 21.9.1 与操作相关的值 21.9.2 DragManager的函数 21.10 接受或拒绝放置 21.10.1 限制添加项 21.10.2 阻止事件传播 21.10.3 通过DragEvent对象找到放置目标 21.11 自定义放置 21.11.1 直接操作组件的dataProvider 21.11.2 间接操作组件的dataProvider 21.12 为非列表组件添加D&D行为 21.12.1 示例说明 21.12.2 启动拖动 21.12.3 给出视觉反馈 21.12.4 处理放置 21.12.5 处理退出 21.12.6 综合起来 21.13 自定义拖放体验 21.13.1 修改拖动图像 21.13.2 修改拖动代理图标 21.14 小结 第22章 图表 22.1 图表简介 22.1.1 图表的构成 22.1.2 图表类型 22.2 准备系列和数据 22.3 创建图表 22.3.1 选择图表 22.3.2 添加图例 22.3.3 改变图表类型 22.4 堆叠图表系列 22.5 探索图表类型 22.5.1 面积图 22.5.2 条形图和柱状图 22.5.3 折线图 22.5.4 气泡图 22.5.5 烛台图和股价图 22.5.6 饼图 22.5.7 散点图 22.6 自定义图表 22.6.1 设置系列笔触样式 22.6.2 设置系列填充样式 22.7 小结 第23章 调试与测试 23.1 调试 23.1.1 使用Flash Debug Player 23.1.2 配置日志 23.1.3 使用trace()函数 23.1.4 跟踪日志查看器 23.1.5 把对象转换成字符串 23.1.6 FxSpy 23.1.7 监视网络活动 23.1.8 使用调试器 23.2 测试 23.2.1 测试的类型 23.2.2 Flex内存和性能分析程序 23.2.3 FlexUnit(单元测试) 23.2.4 Fluint(单元测试) 23.2.5 FunFX(功能测试) 23.2.6 RIATest(功能测试) 23.2.7 HP QuickTest Pro(功能测试) 23.2.8 IBM Rational Functional Tester(功能测试) 23.3 小结 第24章 项目收尾 24.1 打印 24.1.1 在Flex中实现打印 24.1.2 打印工具 24.1.3 打印示例 24.1.4 控制缩放 24.1.5 添加对象的艺术 24.1.6 打印列表 24.1.7 处理用户取消操作 24.1.8 FlexReport 24.2 自定义包装器 24.2.1 包装器文件 24.2.2 包装器模板 24.2.3 最低配置 24.2.4 嵌入到Web应用程序中 24.2.5 向包装器中传入参数 24.3 部署 24.3.1 创建产品化的构建 24.3.2 配置客户端文件 24.3.3 配置服务器端文件 24.3.4 测试应用程序 24.4 小结 在线资源 开发人员资源 论坛 开源项目 Flex技术圈 用户组 北美洲的用户组 其他部分国家的用户组