第1篇 Flex 3.0基础篇<br>第1章 Flex概述 3<br>1.1 RIA概述 4<br>1.2 Flex概观 4<br>1.2.1 Flex应用技术 4<br>1.2.2 Flex组成元素 6<br>1.2.3 Flex技术与传统网页技术的对比 7<br>1.2.4 Flex的工作原理 8<br><br>第2章 Flex Builder介绍 11<br>2.1 配置Flex Builder开发环境 12<br>2.1.1 下载并安装Flex Builder 3 12<br>2.1.2 运行Flex Builder 3 14<br>2.2 Flex Builder简介 14<br>2.3 Flex Builder模式(perspective) 15<br>2.3.1 Flex Builder开发模式中的代码视图 15<br>2.3.2 Flex Builder中的代码提示帮助 16<br>2.3.3 Flex Builder开发模式中的设计视图 17<br>2.3.4 Flex Builder调试(Debug)模式 18<br>2.3.5 编译应用程序 20<br>2.3.6 运行和调试应用程序 21<br>2.3.7 其他信息 21<br>2.4 学习使用文本编辑器(Editor) 21<br>2.5 学习建立第一个应用程序“Hello World!” 22<br>2.5.1 建立第一个应用程序“Hello World!” 22<br>2.5.2 Flex Builder 的生成文件 26<br><br>第2篇 Flex编程基础<br>第3章 MXML编程 29<br>3.1 MXML概述 30<br>3.1.1 使用MXML的好处 30<br>3.1.2 一个简单的MXML应用程序 30<br>3.2 MXML标签和ActionScript类之间的相互关系 31<br>3.3 MXML基本语法 31<br>3.3.1 MXML文件名 31<br>3.3.2 设置组件的属性 31<br>3.3.3 使用常数来设置组件的属性值 32<br>3.3.4 使用斜线“\”来定义字符串属性值 32<br>3.3.5 设定样式属性 33<br>3.3.6 定义URL值 33<br>3.3.7 使用编译标签 33<br>3.3.8 MXML标签规则 34<br>3.4 MXML与其他相关的标准 34<br><br>第4章 ActionScript编程 37<br>4.1 ActionScript 3.0概观 38<br>4.2 ActionScript语言特点 38<br>4.2.1 字母(Literals) 38<br>4.2.2 分号(;) 39<br>4.2.3 括号(()) 39<br>4.2.4 注解(Comments) 39<br>4.2.5 关键词和保留词(reserved words) 39<br>4.2.6 大小写敏感 40<br>4.2.7 点(.) 40<br>4.3 变量 41<br>4.3.1 了解变量作用范围 41<br>4.3.2 变量默认值 42<br>4.3.3 常量(Constants) 42<br>4.3.4 数组 43<br>4.4 数据类型 43<br>4.4.1 类型检查 43<br>4.4.2 is操作符 44<br>4.4.3 as操作符 44<br>4.4.4 类型转换 44<br>4.5 语法:操作符(Operators) 45<br>4.5.1 操作符的优先权(precedence)和关联(associativity) 46<br>4.5.2 原始操作符 47<br>4.5.3 后缀操作符 47<br>4.5.4 一元操作符 47<br>4.5.5 乘法操作符 48<br>4.5.6 加法操作符 48<br>4.5.7 位移操作符 48<br>4.5.8 关系操作符 49<br>4.5.9 等式操作符 49<br>4.5.10 位操作符 49<br>4.5.11 逻辑操作符 50<br>4.5.12 条件操作符 50<br>4.5.13 赋值操作符 50<br>4.6 ActionScript语句 51<br>4.6.1 条件语句(Conditionals) 51<br>4.6.2 循环语句(Looping) 53<br>4.7 函数(Functions) 55<br>4.7.1 引用函数 55<br>4.7.2 函数声明 55<br>4.7.3 函数文字 55<br>4.7.4 函数返回值 56<br>4.7.5 嵌套的函数 56<br>4.7.6 函数的参数 57<br>4.8 对象和类 57<br>4.9 包和命名空间 58<br>4.9.1 文件包 58<br>4.9.2 建立文件包 59<br>4.9.3 输入文件包 59<br>4.9.4 命名空间 59<br>4.10 如何在Flex中应用ActionScript 60<br>4.10.1 在MXML文件中使用ActionScript代码 60<br>4.10.2 包含(inculding)ActionScript代码和输入(importing)ActionScript代码 61<br>4.10.3 在ActionScript代码中引用Flex组件 61<br>4.11 创建ActionScript组件 62<br><br>第5章 Flex组件(Components) 63<br>5.1 组件简介 64<br>5.1.1 组件的特点 64<br>5.1.2 组件的类继承 64<br>5.1.3 在MXML和ActionScript中使用组件 65<br>5.2 组件的大小(Sizing Components) 65<br>5.2.1 定义组件大小的方式 65<br>5.2.2 如何使用组件默认值 66<br>5.2.3 设置组件绝对值大小 66<br>5.2.4 设置组件相对值大小 67<br>5.2.5 使用约束布局定义组件大小 67<br>5.3 组件的定位(Positioning Components) 68<br>5.3.1 使用自动定位 68<br>5.3.2 使用绝对值定位 69<br>5.3.3 使用约束布局定位 70<br><br>第6章 Flex控件(Controls) 71<br>6.1 控件简介(Controls) 72<br>6.1.1 直接控件拖放 72<br>6.1.2 书写代码 72<br>6.1.3 实例演示 73<br>6.1.4 控件的分类 76<br>6.1.5 定义控件大小(Sizing Controls) 77<br>6.1.6 控件定位(Positioning Controls) 79<br>6.2 按钮控件(Button Control) 79<br>6.2.1 基本按钮控件概述 80<br>6.2.2 建立一个按钮控件示例 80<br>6.2.3 改变按钮外观 82<br>6.3 弹出按钮控件(PopUpButton Control) 83<br>6.3.1 弹出按钮控件概述 84<br>6.3.2 建立一个弹出按钮控件示例 84<br>6.4 按钮条和开关按钮条控件(ButtonBar and ToggleButtonBar Controls) 86<br>6.4.1 按钮条和开关按钮条控件概述 87<br>6.4.2 建立一个按钮条控件示例 87<br>6.4.3 建立一个开关按钮条控件示例 89<br>6.5 复选框控件(CheckBox Control) 90<br>6.5.1 复选框控件概述 90<br>6.5.2 建立一个复选框控件示例 91<br>6.6 单选按钮控件(RadioButton Control) 93<br>6.6.1 单选按钮控件概述 93<br>6.6.2 建立一个单选按钮控件示例 93<br>6.7 链接按钮控件(LinkButton Control) 95<br>6.7.1 链接按钮控件概述 95<br>6.7.2 建立一个链接按钮控件 95<br>6.8 链接条控件(LinkBar Control) 97<br>6.8.1 链接条控件概述 97<br>6.8.2 建立一个链接条控件示例 97<br>6.9 标签条控件(TabBar Control) 99<br>6.9.1 标签条控件概述 99<br>6.9.2 建立一个标签条控件 100<br>6.10 进度条控件(ProgressBar Control) 101<br>6.10.1 进度条控件概述 101<br>6.10.2 进度条控件模式 101<br>6.10.3 建立一个进度条控件 102<br>6.11 滚动条控件(ScrollBar Control) 103<br>6.11.1 滚动条控件概述 104<br>6.11.2 建立一个垂直滚动条控件示例 104<br>6.12 水平滑杆和垂直滑杆控件(HSlider and VSlider Control) 106<br>6.12.1 水平滑杆和垂直滑杆控件概述 106<br>6.12.2 建立一个水平滑杆示例 107<br>6.13 水平尺和垂直尺控件(HRule and VRule Control) 108<br>6.13.1 水平尺和垂直尺控件概述 108<br>6.13.2 建立一个水平尺和垂直尺控件示例 109<br>6.14 标签控件(Label Control) 110<br>6.14.1 标签控件概述 110<br>6.14.2 建立一个标签控件示例 111<br>6.15 文本条控件(TextInput Control) 111<br>6.15.1 文本条控件概述 111<br>6.15.2 建立一个文本条控件示例 112<br>6.16 文本控件(Text Control) 113<br>6.16.1 文本控件概述 113<br>6.16.2 建立一个文本控件示例 113<br>6.17 文本区域控件(TextArea Control) 114<br>6.17.1 文本区域控件概述 115<br>6.17.2 建立一个文本区域控件示例 115<br>6.18 富文本编辑器控件(RichTextEditor Control) 116<br>6.18.1 富文本编辑器控件概述 116<br>6.18.2 建立一个富文本编辑器控件示例 117<br>6.19 菜单控件(Menu Control) 118<br>6.19.1 菜单控件概述 118<br>6.19.2 建立一个菜单控件示例 119<br>6.20 菜单条控件(MenuBar Control) 121<br>6.20.1 菜单条控件概述 121<br>6.20.2 建立一个菜单条控件示例 122<br>6.21 弹出菜单按钮控件(PopUpMenuButton Control) 123<br>6.21.1 弹出菜单按钮控件概述 123<br>6.21.2 建立一个弹出菜单按钮控件示例 123<br>6.22 列表控件(List Control) 125<br>6.22.1 列表控件概述 125<br>6.22.2 建立一个列表控件示例 126<br>6.23 水平列表控件(HorizontalList Control) 129<br>6.23.1 水平列表控件概述 129<br>6.23.2 建立一个水平列表控件示例 129<br>6.24 排列列表控件(TileList Control) 131<br>6.24.1 排列列表控件概述 131<br>6.24.2 建立一个排列列表控件示例 132<br>6.25 下拉列表控件(ComboBox Control) 134<br>6.25.1 下拉列表控件概述 135<br>6.25.2 建立一个下拉列控件示例 135<br>6.26 数据表格控件(DataGrid Control) 137<br>6.26.1 数据表格控件概述 137<br>6.26.2 建立一个数据表格表控件示例 138<br>6.27 树结构控件(Tree Control) 140<br>6.27.1 树结构控件概述 140<br>6.27.2 建立一个树结构控件示例 141<br>6.28 计数器控件(NumbericStepper Control) 142<br>6.28.1 计数器控件概述 143<br>6.28.2 建立一个计数器控件示例 143<br>6.29 日期选择器和日期条控件(DateChooserand DateField Controls) 144<br>6.29.1 日期选择器控件概述 144<br>6.29.2 建立一个日期选择器控件示例 145<br>6.29.3 日期条控件概述 146<br>6.29.4 建立一个日期条控件示例 147<br>6.30 图像控件(Image Control) 148<br>6.30.1 图像控件概述 148<br>6.30.2 建立一个图像控件示例 148<br>6.31 SWF加载器控件(SWFLoader Control) 149<br>6.31.1 SWF加载器控件概述 149<br>6.31.2 建立一个SWF加载器控件示例 150<br>6.32 音像控件(VideoDisplay Control) 151<br>6.32.1 音像控件概述 151<br>6.32.2 建立一个音像显示控件示例 151<br>6.33 选色器控件(ColorPicker Control) 152<br>6.33.1 选色器控件概述 152<br>6.33.2 建立一个默认的选色器控件示例 153<br>6.33.3 建立一个用户自定义的选色器控件示例 154<br>6.34 警告控件(Alert Control) 156<br>6.34.1 警告控件概述 156<br>6.34.2 建立一个警告控件示例 157<br><br>第3篇 Flex设计篇<br>第7章 基础知识:容器(Container) 161<br>7.1 什么是容器 162<br>7.1.1 容器简介 162<br>7.1.2 Flex容器的定位方式 162<br>7.1.3 Flex的分类 162<br>7.2 应用容器(Application Container) 163<br>7.2.1 应用容器简介 163<br>7.2.2 应用对象简介 164<br>7.3 布局容器(Layout Container) 165<br>7.3.1 画布布局容器(Canvas Layout Container) 165<br>7.3.2 盒子、水平盒子、垂直盒子布局容器(Box、Hbox and VBox Layout Container) 167<br>7.3.3 控制条布局容器(ControlBar Layout Container) 169<br>7.3.4 应用控制条布局容器(ApplicationControlBar Layout Container) 170<br>7.3.5 分离盒、水平分离盒、垂直分离盒容器(Divided Box,HdividedBoxand VDividedBox) 172<br>7.3.6 表单、表单头、单元格布局容器(Form, FormHeading and FormItem Layout Container) 174<br>7.3.7 格栅布局容器(Grid Layout Container) 180<br>7.3.8 面板布局容器(Panel Layout Container) 183<br>7.3.9 排列模板布局容器(Tile Layout Container) 184<br>7.3.10 标题窗口布局容器(TitleWindow Layout Container) 186<br>7.4 导航容器(Navigator Container) 188<br>7.4.1 视窗堆栈导航容器(ViewStack Navigator Container) 188<br>7.4.2 列表导航容器(TabNavigator Container) 191<br>7.4.3 折叠导航容器(Accordion navigator Container) 193<br><br>第8章 约束版面布局(Constraint-based Layout) 197<br>8.1 约束版面布局(Constraint-based Layout)概观 198<br>8.2 插入和定位组件 198<br>8.3 定义约束定位的布局 200<br><br>第9章 行为控制(Behavior) 203<br>9.1 行为控制 204<br>9.1.1 行为控制效果 204<br>9.1.2 工厂类和实体类(Factory and Instance Classes) 205<br>9.1.3 Flex支持的效果 206<br>9.1.4 Flex的触发器(triggers) 211<br>9.2 使用行为控制 212<br>9.2.1 在MXML中使用数据绑定来实现行为控制 213<br>9.2.2 在MXML中使用样式来实现行为控制 213<br>9.2.3 使用setStyle()和getStyle()函数在MXML中定义的行为效果 213<br>9.3 在ActionScript中实现行为控制 214<br>9.3.1 倒序显示控件的行为效果 216<br>9.3.2 终止/暂停行为效果 216<br>9.3.3 建立一个可以重复使用的行为效果 217<br>9.3.4 在ActionScript使用样式应用行为效果 218<br>9.3.5 使用Effect.target和Effect.targets属性应用行为效果 222<br>9.4 行为效果技巧 224<br>9.4.1 设定行为效果存在的时间 224<br>9.4.2 使用嵌入的字体显示行为效果 225<br>9.4.3 使用组合行为效果 226<br>9.4.4 使用动画属性(AnimateProperty)行为效果 228<br>9.4.5 重复(Repeating)行为效果 229<br>9.4.6 延迟(Delaying)行为效果的发生 230<br>9.4.7 使用遮罩(Mask)行为效果 231<br><br>第10章 样式(Style)和主题(Theme) 233<br>10.1 样式概观 234<br>10.1.1 Flex使用样式的方法 234<br>10.1.2 样式的继承特性 234<br>10.2 MXML使用样式表单 234<br>10.2.1 使用外部的样式表单文件 235<br>10.2.2 使用本地的样式定义 236<br>10.2.3 使用组件标签内部属性样式 239<br>10.3 在ActionScript中使用样式表单 240<br>10.3.1 使用StyleManager类 240<br>10.3.2 使用CSSStyleDeclaration类 241<br>10.3.3 使用getStyle()和setStyle()方法 242<br>10.3.4 在运行时使用样式表单 244<br>10.4 样式值的格式 245<br>10.4.1 长度(Length)格式 245<br>10.4.2 时间(Time)格式 248<br>10.4.3 颜色(Color)格式 248<br>10.4.4 使用数组定义样式属性 249<br>10.5 使用Cascading Style Sheets(CSS)样式表单文件 252<br>10.5.1 CSS概述 252<br>10.5.2 属性和选择器(selector)名称 252<br>10.5.3 CSS中的继承 253<br>10.5.4 Flex中的CSS 253<br>10.5.5 类选择器(Class selector) 253<br>10.5.6 类型选择器(Type selector) 254<br>10.5.7 使用混合的选择器 256<br>10.5.8 选择器的优先权 257<br>10.5.9 所支持的CSS属性 259<br>10.5.10 在样式中嵌入数据源 260<br>10.6 样式的继承 261<br>10.6.1 样式继承顺序 261<br>10.6.2 继承异议(exceptions) 264<br>10.6.3 支持的样式 264<br>10.6.4 主题色彩属性 265<br>10.7 主题概观 265<br>10.7.1 使用主题 266<br>10.7.2 Flex包含的主题文件 266<br>10.7.3 利用格式化文件编译主题SWC件 267<br><br>第11章 皮肤(Skin) 269<br>11.1 皮肤的构成 270<br>11.2 建立图形皮肤 271<br>11.2.1 使用setStyle()方法 271<br>11.2.2 使用CSS表单 272<br>11.2.3 使用标签内部定义方法 273<br>11.3 建立程序皮肤 274<br>11.4 建立状态皮肤 275<br>11.5 子组件的皮肤 277<br><br>第12章 条目渲染器(Item Renderer) 279<br>12.1 条目渲染器概观 280<br>12.1.1 默认的条目渲染器 280<br>12.1.2 用户自定义的条目渲染器 280<br>12.1.3 条目渲染器的应用布局 281<br>12.2 建立用户自定义条目渲染器 281<br>12.2.1 建立标签内部(drop-in)条目渲染器和选项编辑器 281<br>12.2.2 建立程序内部的条目渲染器和选项编辑器 285<br>12.2.3 使用Flex组件文件作为条目渲染器和选项编辑器 289<br>12.2.4 使用ActionScript类文件作为条目渲染器 292<br><br>第13章 工具条提示(ToolTips) 297<br>13.1 工具条提示概观 298<br>13.2 建立工具条提示 298<br>13.2.1 使用ToolTip属性建立提示 298<br>13.2.2 子容器工具条提示显示原则 298<br>13.2.3 提示信息的换行显示 300<br>13.2.4 设定工具条提示的样式 301<br>13.2.5 设定工具条提示的宽度 302<br>13.2.6 使用工具条提示事件 303<br>13.3 使用工具条提示管理(ToolTip Manager) 304<br>13.3.1 激活和禁用工具条提示 304<br>13.3.2 延迟工具条提示时间 305<br>13.3.3 在工具条提示上使用行为效果 307<br>13.3.4 建立动态的工具条提示 308<br>13.3.5 建立用户自定义工具条提示 308<br>13.4 使用错误信息的工具条提示 310<br>13.5 重写工具条提示的皮肤 312<br><br>第14章 光标管理器(Cursor Manager) 315<br>14.1 使用CursorManager光标管理器 316<br>14.2 使用忙碌光标 318<br>14.2.1 设定忙碌光标 318<br>14.2.2 使用忙碌光标属性 320<br>14.2.3 使用手形光标 320<br><br>第15章 Flex应用程序本地化(Localizing) 321<br>15.1 本地化概观 322<br>15.1.1 资源包(Resource Bundle)和属性文件(Properties File) 322<br>15.1.2 本地化工作流程 322<br>15.2 建立本地化应用程序 323<br><br>第16章 动态重复控件和容器(Repeating) 327<br>16.1 动态重复控件和容器(Repeating)简介 328<br>16.2 建立重复控件 328<br>16.2.1 建立基本静态的重复控件 329<br>16.2.2 建立动态循环的重复控件 332<br>16.3 引用重复控件 333<br>16.3.1 引用重复的子类控件 335<br>16.3.2 引用嵌套的重复控件 335<br>16.3.3 重复控件的事件处理 336<br>16.4 使用用户自定义MXML重复控件 337<br>16.5 使用重复控件的注意事项 339<br><br>第17章 视窗状态(View States) 341<br>17.1 视窗状态概观 342<br>17.1.1 简单的登录表格示例 342<br>17.1.2 使用视窗状态控制布局 344<br>17.1.3 对比视窗状态和导航 346<br>17.2 建立和使用视窗状态 346<br>17.2.1 使用Flex Builder中建立新的视窗状态 346<br>17.2.2 在Action Script代码中建立新的视窗状态 349<br>17.3 定义新的视窗状态 352<br>17.3.1 重写组件属性 352<br>17.3.2 重写组件样式 353<br>17.3.3 增加和减少组件 354<br>17.3.4 在事件处理中设定重写 356<br><br>第18章 过渡(Transition) 359<br>18.1 在登录表格上使用过渡 360<br>18.2 定义过渡 362<br>18.2.1 定义多个过渡 364<br>18.2.2 定义效果目标 365<br>18.2.3 定义效果起始和终止值 365<br>18.3 在过渡中使用行为效果 365<br>18.4 过滤过渡(Filtering T) 368<br>18.5 使用过渡效果的提示 370<br><br>第19章 拖放行为(Drag and Dorp) 371<br>19.1 拖放行为概观 372<br>19.2 在列表类控件上使用拖放行为 372<br>19.2.1 实现基本的列表类控件拖放行为 372<br>19.2.2 两个方向的拖放行为 374<br>19.2.3 在同一个控件上的拖放行为 376<br>19.2.4 列表类控件的拖动放置属性 378<br>19.3 人为添加拖放行为 378<br>19.3.1 用来定义拖放操作的类 379<br>19.3.2 手工拖放实现原理 380<br>19.3.3 手工拖放操作示例 380<br>19.4 拖放行为示例 383<br>19.4.1 使用容器作为放置目标示例 384<br>19.4.2 设定拖动代理 385<br>19.4.3 对放置目标的dragOver和dragExit事件进行管理 387<br>19.5 移动和复制数据 391<br>19.5.1 移动和复制 391<br>19.5.2 在列表控件和数据列表控件之间移动或复制数据 391<br>19.5.3 在非列表类控件之间移动或复制数据 394<br><br>第20章 嵌入外部资源(Embedding Assets) 399<br>20.1 嵌入外部资源概观 400<br>20.2 嵌入参数 401<br>20.3 嵌入资源类型 402<br><br>第4篇 Flex数据篇<br>第21章 Flex与外部通信 407<br>21.1 获得环境信息 408<br>21.2 传递数据到Flex应用程序 410<br>21.3 从Flex应用程序接触外部JavaScript函数 412<br>21.3.1 使用ExternalInterface API获得JavaScript 412<br>21.3.2 使用navigateToURL()方法获得JavaScript 415<br>21.4 从JavaScript应用程序获得Flex 416<br><br>第22章 共享对象(Shared Objects) 419<br>22.1 共享对象概观 420<br>22.2 使用共享对象 420<br>22.2.1 在共享对象中增加数据和删除共享对象 421<br>22.2.2 使用共享对象的示例 421<br><br>第23章 数据获取和联系(Data Access and Interconnectivity) 427<br>23.1 从Flex中获得服务器的数据 428<br>23.1.1 使用HTTPService组件 428<br>23.1.2 使用WebService组件 430<br>23.1.3 使用RemoteObject组件 432<br>23.2 表达数据(Representing Data) 437<br>23.3 数据绑定(Data Binding) 438<br>23.3.1 数据绑定的3种方法 439<br>23.3.2 使用“{}”绑定数据到数据模型(Data Models) 440<br>23.3.3 绑定一个数据源到多个目标属性 441<br>23.3.4 绑定多个数据源到一个目标属性的示例 442<br>23.3.5 定义双向的绑定示例 442<br>23.3.6 使用Bindable元数据标签 443<br>23.4 数据存储(Data Storing) 444<br>23.4.1 定义一个数据模型 444<br>23.4.2 在数据模型中使用数据确证 445<br>23.4.3 绑定数据到XML数据模型 447<br>23.5 数据确证(Data Validating) 447<br>23.5.1 事件触发确证行为示例 448<br>23.5.2 程序触发确证行为示例 449<br>23.5.3 激活和失活validator 450<br>23.5.4 确证必须的输入项 451<br>23.5.5 使用数据绑定来定义validator 452<br>23.6 数据格式化(Data Formatting) 453<br>23.6.1 使用数据格式化 453<br>23.6.2 使用CurrencyFormatter类示例 453<br>23.6.3 使用NumberFormatter类示例 454<br>23.6.4 使用PhoneFormatter类示例 455<br>23.6.5 使用ZipCodeFormatter类示例 456<br>23.6.6 使用DateFormatter类示例 457<br><br>第24章 图表组件(Charting Components) 461<br>24.1 图表组件概览 462<br>24.1.1 使用图表组件 462<br>24.1.2 序列类、坐标轴类和图表事件 463<br>24.2 图表组件概览 463<br>24.2.1 面积图表(Area Chart)示例 463<br>24.2.2 条形图表(Bar Chart)示例 466<br>24.2.3 气泡图表(Bubble Chart)示例 468<br>24.2.4 蜡烛图表(Candlestick Chart)示例 473<br>24.2.5 圆柱图表(Column Chart)示例 475<br>24.2.6 HighLowOpenClose图表(HighLowOpenCloseChart)示例 477<br>24.2.7 折线图表(Line Chart)示例 478<br>24.2.8 圆饼图表(Pie Chart)示例 480<br>24.2.9 散点图表(Plot Chart)示例 481<br>24.2.10 使用多个数据序列示例 483<br><br>第5篇 Flex综合实例篇<br>第25章 查询天气系统——基于Cairngorm框架 487<br>25.1 Cairngorm框架概览 488<br>25.2 查询天气系统分析 489<br>25.2.1 整体结构 489<br>25.2.2 数据来源 489<br>25.2.3 建立项目 490<br>25.3 值对象 491<br>25.3.1 查询信息值对象QueryItemVO.as 491<br>25.3.2 城市信息值对象CityInfoVO.as 492<br>25.4 视图代码 493<br>25.4.1 查询信息视图QueryPanel.mxml 493<br>25.4.2 城市信息视图CityInfoPanel.mxml 495<br>25.4.3 天气预报数据格栅视图WeatherResultPanel.mxml 496<br>25.4.4 温度折线图表视图WeatherResultChart.mxml 499<br>25.5 模型定位器代码 502<br>25.5.1 模型定位器ModelLocator.as 502<br>25.5.2 模型变量类GetWeather.as 503<br>25.6 事件程序GetWeatherByCityEvent.as 504<br>25.7 控制器程序GetWeatherByCityControl.as 504<br>25.8 命令程序GetWeatherByCityCommand.as 505<br>25.9 服务层代码 507<br>25.9.1 服务程序Services.mxml 507<br>25.9.2 服务委托程序ServicesDelegate.as 508<br>25.10 主程序WeatherForeCastExample.mxml 509<br>25.11 运行和测试 512
展开