Flex从入门到实践

Flex从入门到实践"

作者:吕辉
ISBN:9787302204107
定价:¥59.80
字数:千字
页数:
出版时间:2009.09.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书循序渐进地介绍了Flex从基础知识到高级应用。书中的每一个章节都使用了实例来说明,并穿插了大量的说明、注意事项和操作技巧。本书共分为24章,分别介绍了Flex语言基础、交互设计、布局导航、行为样式、数据通信和框架设计等。本书难度适中,内容由浅入深;实用性强,立竿见影;覆盖面广,除了Flex基础、组件外,还包括了AIR平台、与各种服务器语言通信技术、PureMVC框架以及各种开源项目的介绍;条理清晰,从Flex基础开始,到Flex框架设计结束。

本书实例内容丰富,适合Flex开发的初级程序员,或者想了解Flex的程序开发人员,同时也可以作为想深入了解Flex开发的中、高级程序员的参考书,以及培训机构的教材使用。

前言

前    言

Flex目前已经成为富互联网应用程序(RIA)的主要编程语言之一。如今,传统的互联网技术已经不能很好地满足用户的功能需求,RIA技术的发展已经成为了主流。在RIA技术中,Adobe公司的Flex以其特有的技术特点已经走在了前列。

Flex的第一个版本是在2004年由Macromedia公司发布的,接着又陆续发布了Flex开发工具Flex Builder。Flex最初是作为J2EE的一个应用,或者可以说是JSP标签库而发布的。Adobe并购Macromedia后,第一个被冠上Adobe商标而重命名的产品就是Flex。Adobe公司为了能使产品应用更加广泛,重新编写了ActionScript语言并发布了3.0版本。此后,Flex和ActionScript成为了开发RIA的重要语言之一。

为了方便广大读者学习,本人花费半年时间写作这本书。本书全面地介绍了Flex技术,并以实例介绍了Flex各种组件和相关技术。学完本书之后,力求让读者更多更深入地理解Flex技术并应用到实际的项目开发中。

本书特色介绍

1.提供多媒体语音视频讲解和交互式教学体验

笔者为本书录制了几百分钟的语音视频来进行讲解,同时还制作了交互式教学内容,读者可以在提示下进行各种Flex实战入门操作,以更快地掌握Flex。

2.提供完善的售后服务

本书学习论坛为http://www.wanjuanchina.net,读者可以讨论技术,笔者会及时回答提问,并提供各种技术文章,帮助读者提高开发水平。本书提供了服务邮箱fwflex@sina.com,读者购买本书后向该邮箱发一封邮件,即可获取各种Flex学习资料。

3.技术全面,内容充实

本书结合作者多年开发经验,详细分析了Flex技术和工具的特点及实际应用。书中除Flex基础知识外,还介绍了Flex相关开源项目,如AMFPHP、FluorineFx、BlazeDS等。

4.整理了常见问题,对重点代码进行标注

本书给出了学习中会遇到的常见问题,并对这些问题做了详细解答,避免读者少走弯路。同时,本书对重点代码编号讲解,以方便读者学习,能更好地掌握重点和难点。

本书体系结构及内容介绍

全书的内容主要分为8篇,包括以下内容。

第1篇为概述篇,包括第1~2章,主要对Flex的基础知识包括Flex的发展历史、语言特点和开发环境进行介绍。

第2篇为语言基础篇,包括第3~5章,主要介绍Flex的基础语言MXML和ActionScript,并讲解Flex的事件机制,包括事件的侦听和事件的类型等。

第3篇为交互设计篇,包括第6~10章的内容,主要讲解Flex的基础应用交互式设计、Flex中可视化控件的使用和设计。其中分别讲解文本设计、按钮设计、数据绑定、图标设计等,这些都是Flex构建界面的基础要素。

第4篇为布局和导航,包括第11~13章,主要介绍Flex的界面布局,其中包括各种布局容器的使用,还详细讲解了Flex导航的设计,涉及各种菜单的设计。

第5篇为行为和样式,包括第14~15章,主要介绍Flex外观设计,包括行为、样式和主题等。

第6篇为数据通信,包括第16~21章,主要介绍Flex与服务器端通信技术。其中讲解了HTTPService和Web Service技术,以及与各种服务器技术通信的方法。同时,这部分内容也涉及很多开源项目,如AMFPHP、FluorineFx、BlazeDS等。

第7篇为扩展篇,包括第22~23章,主要介绍Flex开发框架PureMVC。其中详细讲解了PureMVC每个部分的使用,同时也列举了实例说明。详细描述了如何使用Flex开发AIR平台,还包括AIR技术与本地数据库的应用。

第8篇为实例篇,包括第24章,重点讲解Flex的应用。本实例使用PureMVC作为基础框架,本篇对该框架的应用做了深入的讲解。

适合阅读本书的读者

* Flex初、中级开发人员;

* 其他编程语言的程序员;

* 网站开发和设计人员;

* 大中专院校的学生;

* 社会培训学生。

本书作者及编委会成员

本书由吕辉主笔编写。其他参与编写与资料整理的人员有班志杰、陈旭、陈永俊、陈争光、戴建华、方文票、冯玉荣、高姗姗、巩宁来、谷世江、胡其吐、黄飞龙、蒋晓捷、李德明、李显亮、李志勇、刘雁征、吕小波、马东、孟庆海、唐勇、王浩、王玲玉、王志娟、武娜、徐晓娟、闫树丰、杨朝宇、翟闯等。在此表示感谢!

本书编委会成员有欧振旭、陈杰、陈冠军、顼宇峰、张帆、陈刚、程彩红、毛红娟、聂庆亮、王志娟、武文娟、颜盟盟、姚志娟、尹继平、张昆、张薛。

编著者

??

??

??

??

前    言

·IV·

·III·

目录

目    录

第1篇  概  述  篇

第1章  Flex概述 2

1.1  Flex简介 2

1.1.1  Flex是什么 2

1.1.2  Flex 运行机制 2

1.1.3  Flex产品组成 4

1.2  Flex和Flash的关系 4

1.3  Flex与其他技术比较 5

1.3.1  HTML/JavaScript/Ajax 5

1.3.2  Java/Java FX 5

1.3.3  Silverlight/XAML 5

1.4  常见问题及解答 6

1.5  小结 6

1.6  习题 6

第2章  Flex的开发环境 7

2.1  Flex SDK的安装 7

2.1.1  下载和安装Adobe Flex SDK 7

2.1.2  编译代码 8

2.2  开发工具Flex Builder 3 9

2.2.1  安装Flex Builder 3 9

2.2.2  Flex Builder 3的界面 10

2.3  构建第一个Flex应用程序 11

2.3.1  创建Flex项目 12

2.3.2  创建组件和编写代码 12

2.3.3  编译和运行应用程序 14

2.4  各种常见的文件类型 15

2.4.1  项目组件化 15

2.4.2  项目模块化 16

2.4.3  项目模式化 17

2.5  上机实践 17

2.6  常见问题及解答 17

2.7  小结 17

2.8  习题 18

第2篇  语言基础篇

第3章  MXML语法基础 20

3.1  MXML的构成 20

3.1.1  结构原理 20

3.1.2  书写规则 21

3.2  解析MXML的标签 21

3.3  命名空间 22

3.4  常见问题及解答 24

3.5  小结 24

3.6  习题 24

第4章  ActionScript 3.0 语法基础 25

4.1  变量和常量 25

4.1.1  变量的声明和赋值 25

4.1.2  变量的作用域 26

4.1.3  声明常量 27

4.2  数据类型 27

4.2.1  基本数据类型 28

4.2.2  复合数据类型 28

4.2.3  数据类型检查 29

4.2.4  is运算符 29

4.2.5  as运算符 30

4.3  语句 30

4.3.1  if…else 语句 30

4.3.2  if…else if 语句 31

4.3.3  switch语句 32

4.3.4  for语句 34

4.3.5  for…in语句 35

4.3.6  for each…in语句 35

4.3.7  while语句 36

4.3.8  do…while语句 37

4.4  函数 38

4.4.1  定义函数 38

4.4.2  函数的返回值 38

4.4.3  函数的作用域 39

4.4.4  值参数 39

4.4.5  引用参数 39

4.4.6  默认参数 40

4.4.7  arguments对象参数 40

4.4.8  …(rest) 参数 41

4.5  常见问题及解答 41

4.6  小结 41

4.7  习题 42

第5章  事件和事件机制 43

5.1  事件的概述 43

5.1.1  事件的侦听 43

5.1.2  Event类 44

5.2  定义事件 45

5.2.1  在MXML中定义事件 45

5.2.2  在ActionScript中定义事件 46

5.3  事件的类型 46

5.3.1  鼠标事件 46

5.3.2  键盘事件 48

5.3.3  时间事件 50

5.4  常见问题及解答 51

5.5  小结 51

5.6  习题 51

第3篇  交互设计篇

第6章  文本设计 54

6.1  文本的显示 54

6.1.1  使用Label控件显示文本 54

6.1.2  使用Text控件的text属性显示文本 55

6.1.3  使用Text控件的htmlText属性显示文本 55

6.2  单行文本框的设计 56

6.2.1  使用TextInput控件设计文本框 56

6.2.2  动态定义文本框的内容 57

6.2.3  动态创建文本框 59

6.3  多行文本的设计 60

6.3.1  使用TextArea控件显示多行文本 60

6.3.2  在多行文本框中显示HTML文本 61

6.4  文本编辑器的设计 62

6.4.1  使用RichTextEditor控件创建一个文本编辑器 62

6.4.2  添加和移除文本编辑器的工具栏内容 62

6.5  获取选择的文本 64

6.5.1  获取文本框中选择的文本 64

6.5.2  获取文本编辑器中选择的文本 66

6.6  本章实例:HTML文本编辑器 67

6.7  上机实践 72

6.8  常见问题及解答 73

6.9  小结 73

6.10  习题 73

第7章  按钮设计 74

7.1  普通按钮的设计 74

7.1.1  使用Button控件设计按钮 74

7.1.2  按钮中嵌入图片 75

7.1.3  设置按钮样式 75

7.1.4  按钮事件 76

7.2  单选按钮的设计 77

7.2.1  使用RadioButton控件设计单选按钮 78

7.2.2  使用单选按钮组 78

7.2.3  一个简单的加减法计算器 80

7.3  复选框的设计 82

7.3.1  使用CheckBox控件设计复选框 82

7.3.2  使用ActionScript控制复选框 83

7.3.3  动态创建复选框 84

7.4  弹出式按钮的设计 87

7.4.1  创建PopUpButton控件 87

7.4.2  获取弹出式按钮菜单的内容 88

7.5  链接按钮的设计 90

7.5.1  创建LinkButton控件 90

7.5.2  设置样式 92

7.6  本章实例:简易计算器 92

7.7  上机实践 95

7.8  常见问题及解答 95

7.9  小结 96

7.10  习题 96

第8章  数据绑定 97

8.1  数据列表 97

8.1.1  使用List控件创建数据列表 97

8.1.2  使用ActionScript在List控件中绑定数据 98

8.1.3  获取List控件的数据 100

8.1.4  在数据中嵌入图片 102

8.2  横向数据列表 103

8.2.1  使用HorizontalList控件 104

8.2.2  自定义ItemRenderer属性 105

8.3  二维数据列表 106

8.3.1  使用TileList控件 107

8.3.2  获取TileList控件中的数据 109

8.4  下拉列表 110

8.4.1  使用ComBox控件 111

8.4.2  获取下拉列表中的数据 112

8.5  数据网格 113

8.5.1  使用DataGrid控件 113

8.5.2  定义DataGrid控件的列 115

8.5.3  获取DataGrid控件的数据 116

8.5.4  DataGrid控件的排序 117

8.6  树形式的呈现方式 120

8.6.1  使用Tree控件 121

8.6.2  获取Tree控件的数据项 122

8.7  本章实例:商品列表 123

8.8  上机实践 124

8.9  常见问题及解答 124

8.10  小结 125

8.11  习题 125

第9章  图表设计 126

9.1  图表组件概述 126

9.1.1  关于数据图表 126

9.1.2  使用图表控件 126

9.1.3  定义数据源 130

9.2  图表类型 133

9.2.1  区域型图表 133

9.2.2  条型图表 135

9.2.3  泡沫型图表 137

9.2.4  烛台型图表 138

9.2.5  线型图表 139

9.2.6  圆饼型图表 141

9.2.7  混合型图表 143

9.3  格式化图表 144

9.3.1  创建样式 144

9.3.2  设置间隔大小 146

9.4  本章实例:股票分析系统 148

9.5  上机实践 150

9.6  常见问题及解答 151

9.7  小结 151

9.8  习题 151

第10章  其他交互设计 152

10.1  数字选择器 152

10.1.1  创建NumericStepper控件 152

10.1.2  设置NumericStepper控件 153

10.1.3  构建一个复合型的日期控件 153

10.2  日期显示 155

10.2.1  使用DateChooser控件实现日期选择 155

10.2.2  使用DateField控件实现日期选择 156

10.2.3  使用日期类 156

10.2.4  设置DateField控件的日期格式 158

10.2.5  设置DateChooser控件的中文显示 159

10.3  加载外部SWF文件 160

10.3.1  创建SWFLoader控件 160

10.3.2  与已加载的SWF文件交互 162

10.4  加载图像 168

10.4.1  创建Image控件 168

10.4.2  加载图像 169

10.5  颜色选择器 170

10.5.1  创建ColorPicker控件 170

10.5.2  自定义面板显示的颜色 171

10.5.3  自定义面板显示的标签 172

10.6  警告框的设计 173

10.6.1  创建警告框 173

10.6.2  警告框的事件 174

10.6.3  自定义警告框的按钮标签 175

10.6.4  设置提示框的文本大小 176

10.6.5  设置提示框的图标 177

10.7  进度条的设计 178

10.7.1  创建ProgressBar控件 178

10.7.2  设置进度条的标签 179

10.8  本章实例:日程管理 181

10.9  上机实践 184

10.10  常见问题及解答 184

10.11  小结 184

10.12  习题 184

第4篇  布局和导航

第11章  定位和布局 186

11.1  Canvas容器 186

11.2  使用Box布局容器 187

11.2.1  使用Box容器 187

11.2.2  使用HBox和VBox容器实现横向或纵向的布局 188

11.3  使用DividedBox容器布局 190

11.3.1  创建DividedBox容器 190

11.3.2  使用HDividedBox和VDividedBox容器实现可调控的布局 192

11.4  表单布局 195

11.4.1  创建表单 195

11.4.2  设置间隔 196

11.4.3  表单验证 197

11.5  网格定位 199

11.5.1  使用网格定位 199

11.5.2  网格容器之间的嵌套 200

11.6  Tile布局 201

11.6.1  使用Tile布局 201

11.6.2  设置Tile布局 202

11.7  使用面板 203

11.7.1  创建Panel容器 203

11.7.2  添加ControlBar控件 204

11.8  弹出窗口 205

11.8.1  创建TitleWindow容器 205

11.8.2  向弹出的窗口传递数据 206

11.9  本章实例:通讯录 208

11.10  上机实践 212

11.11  常见问题及解答 212

11.12  小结 213

11.13  习题 213

第12章  导航 214

12.1  ViewStack导航设计 214

12.1.1  创建ViewStack容器 214

12.2.2  实现不同子容器之间的传值 216

12.2  标签导航设计 218

12.2.1  使用TabNavigator导航容器 218

12.2.2  动态添加TAB标签 219

12.3  折叠导航设计 221

12.4  本章实例:名片管理系统 222

12.5  上机实践 226

12.6  常见问题及解答 226

12.7  小结 227

12.8  习题 227

第13章  菜单设计 228

13.1  上下文菜单的设计 228

13.1.1  使用Menu控件创建菜单 228

13.1.2  添加Menu控件菜单事件 230

13.2  菜单条的设计 232

13.2.1  使用MenuBar控件创建菜单 233

13.2.2  添加菜单条菜单事件 233

13.3  弹出式按钮菜单的设计 236

13.3.1  使用PopUpMenuButton控件创建菜单 236

13.3.2  添加弹出式按钮菜单事件 237

13.4  本章实例:多窗口文档编辑器 238

13.5  上机实践 240

13.6  常见问题及解答 240

13.7  小结 241

13.8  习题 241

第5篇  行为和样式

第14章  行为和特效 244

14.1  使用行为 244

14.1.1  行为简介 244

14.1.2  在ActionScript中使用行为 245

14.2  拖放行为特效 247

14.2.1  容器之间移动数据 247

14.2.2  容器之间复制数据 248

14.2.3  手动添加拖放功能 250

14.3  使用View States 251

14.3.1  使用View States改变局部视图 251

14.3.2  View States之间的继承关系 252

14.3.3  使用比较运算符 253

14.4  过渡特效Transitions 254

14.5  使用ToolTip 256

14.5.1  使用ToolTip属性 256

14.5.2  设置ToolTip样式 256

14.5.3  使用ToolTip管理器 257

14.5.4  创建一个自定义的ToolTip 258

14.6  本章实例:用户登录系统 259

14.7  上机实践 260

14.8  常见问题及解答 261

14.9  小结 261

14.10  习题 261

第15章  样式和主题 262

15.1  使用样式 262

15.1.1  使用Style组件定义样式 262

15.1.2  使用StyleManager类定义样式 263

15.1.3  外部样式表 264

15.2  使用字体 265

15.2.1  使用系统字体 265

15.2.2  使用嵌入式字体 266

15.3  指针管理器 267

15.4  本章实例:使用Flex主题 269

15.5  上机实践 271

15.6  常见问题及解答 271

15.7  小结 271

15.8  习题 271

第6篇  数 据 通 信

第16章  HTTPService和Web Service 274

16.1  使用HTTPService 274

16.1.1  读取数据 274

16.1.2  提交数据 276

16.2  使用Web Service 279

16.2.1  使用MXML代码访问Web服务 279

16.2.2  使用ActionScript访问Web服务 283

16.3  本章实例:在线翻译 284

16.4  上机实践 287

16.5  常见问题及解答 288

16.6  小结 288

16.7  习题 288

第17章  Flex Ajax桥 289

17.1  Ajax简介 289

17.1.1  Ajax的定义 289

17.1.2  Ajax的使用 289

17.1.3  与传统的Web应用比较 290

17.1.4  发展史 290

17.1.5  优点和缺点 291

17.1.6  Ajax的工作原理 291

17.2  使用FABridge 292

17.2.1  FABridge简介 292

17.2.2  使用FABridge 292

17.3  本章实例:相册 295

17.4  上机实践 296

17.5  常见问题及解答 297

17.6  小结 297

17.7  习题 297

第18章  Flex与ColdFusion 298

18.1  ColdFusion简介 298

18.2  使用ColdFusion 298

18.2.1  安装ColdFusion 299

18.2.2  创建第一个Flex和ColdFusion通信程序 303

18.3  本章实例:留言本(ColdFusion版) 306

18.4  上机实践 309

18.5  常见问题及解答 309

18.6  小结 309

18.7  习题 310

第19章  Flex与PHP 311

19.1  PHP简介 311

19.1.1  PHP脚本语言 311

19.1.2  使用PHP 311

19.2  使用AMFPHP 312

19.2.1  AMFPHP简介 312

19.2.2  访问PHP应用程序 313

19.3  本章实例:留言本(PHP版) 315

19.4  上机实践 319

19.5  常见问题及解答 320

19.6  小结 320

19.7  习题 320

第20章  Flex与.NET 321

20.1  .NET简介 321

20.1.1  .NET框架 321

20.1.2  ASP.NET应用程序 321

20.2  使用FluorineFX 323

20.2.1  安装FluorineFx 323

20.2.2  使用FluorineFx创建应用程序 325

20.3  本章实例:留言本(.NET版) 329

20.4  上机实践 330

20.5  常见问题及解答 331

20.6  小结 331

20.7  习题 331

第21章  Flex与Java 332

21.1  Java简介 332

21.1.1  Java语言 332

21.1.2  Java语言的特点 333

21.2  开源项目BlazeDS 334

21.2.1  安装和配置BlazeDS 334

21.2.2  使用BlazeDS 335

21.3  本章实例:留言本(Java版) 339

21.4  上机实践 339

21.5  常见问题及解答 340

21.6  小结 340

21.7  习题 340

第7篇  扩  展  篇

第22章  PureMVC框架 342

22.1  PureMVC模式简介 342

22.1.1  MVC模式 342

22.1.2  PureMVC结构 343

22.2  控制中心--Facade类 343

22.2.1  Facade类 344

22.2.2  创建Facade子类 344

22.3  通信机制 346

22.3.1  通信机制概述 346

22.3.2  事件(Event)处理 346

22.4  逻辑命令处理--Command类 347

22.4.1  Command类 347

22.4.2  创建Command子类 347

22.5  视图控制--Mediator类 351

22.5.1  Mediator类 351

22.5.2  创建Mediator子类 351

22.6  数据模型代理--Proxy类 357

22.6.1  Proxy类 358

22.6.2  创建Proxy子类 358

22.7  本章实例:用户角色管理 362

22.8  上机实践 376

22.9  常见问题及解答 376

22.10  小结 376

22.11  习题 377

第23章  创建AIR程序 378

23.1  AIR简介 378

23.1.1  AIR平台概述 378

23.1.2  使用Flex创建第一个AIR程序 378

23.2  窗体 379

23.2.1  窗体简介 380

23.2.2  窗体事件 380

23.3  菜单 382

23.3.1  系统菜单 382

23.3.2  右键菜单 384

23.3.3  托盘菜单 385

23.4  本地SQL数据库 386

23.4.1  创建和打开数据库 386

23.4.2  创建数据表 388

23.4.3  插入数据 389

23.4.4  读取数据 391

23.5  本章实例:RSS阅读器 392

23.6  上机实践 393

23.7  常见问题及解答 394

23.8  小结 394

23.9  习题 395

第8篇  实  例  篇

第24章  使用Flex创建MP3播放器 398

24.1  总体和界面设计 398

24.1.1  总体功能设计 398

24.1.2  总体框架设计 399

24.1.3  播放进度设计 401

24.1.4  播放控制界面设计 402

24.1.5  歌曲列表设计 402

24.2  歌曲列表功能设计 403

24.2.1  创建数据和对象模型 403

24.2.2  读取歌曲列表 405

24.2.3  显示歌曲列表 406

24.3  播放控制功能设计 408

24.3.1  播放控制 408

24.3.2  暂停控制 410

24.3.3  停止控制 412

24.3.4  歌曲切换 414

24.4  显示进度功能设计 416

24.5  音量控制功能设计 417

24.5.1  音量控制 417

24.5.2  静音控制 419

24.6  小结 419

??

??

??

??

·XVI·

·XVII·

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个