第I部分 Flex 概 述
第1章 使用Flex的理由 3
1.1 Flex的含義 3
1.2 RIA的含義 3
1.3 受歡迎的Flex 6
1.3.1 揭秘Flash和Flex 7
1.3.2 用戶喜愛Flex的十大理由 11
1.4 本章小結 14
第2章 Flex 3生態係統 15
2.1 Flex曆史簡介 15
2.2 Adobe Flex 3生態係統 17
2.2.1 運行時 17
2.2.2 語言 23
2.2.3 框架和API 26
2.2.4 數據通信 28
2.2.5 服務器 29
2.3 Adobe Flex RIA工作流程 31
2.3.1 設計與開發 32
2.3.2 運行 32
2.3.3 通信 33
2.3.4 基本設施 33
2.4 Flex生態係統未來的擴展 33
2.5 本章小結 34
第3章 ActionScript 3.0基礎 35
3.1 核心語言概念 35
3.1.1 基本語法 35
3.1.2 保留關鍵字 36
3.1.3 變量和數據類型 37
3.2 控製結構 37
3.2.1 條件語句 37
3.2.2 循環 39
3.3 使用類和數據類型 40
3.3.1 值類型 40
3.3.2 數字型 41
3.3.3 字符串 42
3.3.4 數組 43
3.3.5 嚮量 45
3.3.6 對象 45
3.3.7 類型轉換 46
3.3.8 自檢 47
3.4 麵嚮對象編程 49
3.4.1 Object類 50
3.4.2 包和類 50
3.4.3 類特性 51
3.4.4 類成員 51
3.4.5 接口和繼承 56
3.5 本章小結 57
第4章 運用ActionScript 3.0 58
4.1 Flash平颱框架 58
4.2 顯示編程 59
4.3 事件模型 59
4.3.1 事件類和類型 60
4.3.2 事件進程 60
4.3.3 事件流 62
4.3.4 EventDispatcher類 62
4.4 Flash Player API 63
4.4.1 Display API 63
4.4.2 Flash AIR的API 67
4.4.3 Flash 10的API 68
4.5 本章小結 72
第5章 Flex Builder 3 73
5.1 Flex Builder入門 73
5.1.1 Flex Builder和Eclipse 74
5.1.2 學習Flex和獲取幫助 74
5.2 Flex Builder 3工作颱 78
5.2.1 工作區 79
5.2.2 創建和交換工作區 79
5.2.3 工作區配置 79
5.2.4 編輯器 80
5.2.5 視圖 80
5.2.6 透視圖 81
5.2.7 創建自定義透視圖 84
5.3 Flex Builder 3中的新內容 84
5.3.1 新嚮導 84
5.3.2 設計模式的增強 84
5.3.3 開發功能的增強 84
5.3.4 CS3套件的整閤 85
5.4 本章小結 85
第II部分 使用Flex 3開發應用程序
第6章 使用Flex Builder 3 89
6.1 Flex編譯過程 89
6.1.1 開發 89
6.1.2 編譯 90
6.1.3 發布 91
6.2 關於項目 91
6.3 創建Flex應用程序 93
6.3.1 創建一個Flex項目 93
6.3.2 使用設計模式 95
6.3.3 使用數據綁定 100
6.3.4 使用觸發器和特效 101
6.3.5 編譯應用程序 101
6.4 創建ActionScript應用程序 102
6.4.1 創建ActionScript項目 102
6.4.2 比較文件大小 105
6.5 非正式的SWF元數據標記 105
6.6 本章小結 107
第7章 MXML基礎 108
7.1 語言原則 108
7.1.1 MXML是XML 108
7.1.2 命名約定 108
7.1.3 MXML語法 109
7.1.4 顯示層次 109
7.1.5 MXML名稱空間 110
7.2 使用MXML 113
7.2.1 MXML標簽 113
7.2.2 MXML屬性 115
7.2.3 使用MXML和CSS 119
7.2.4 使用MXML和
ActionScript 120
7.3 本章小結 127
第8章 使用Flex Builder 3進行
開發 128
8.1 項目管理 128
8.1.1 項目屬性 128
8.1.2 導齣項目 132
8.1.3 導入項目 132
8.1.4 導航項目 134
8.2 創建應用程序 139
8.2.1 創建調試版本 139
8.2.2 創建導齣版本 140
8.2.3 激活源視圖 141
8.3 語言智能 144
8.3.1 編輯代碼 144
8.3.2 代碼參數 146
8.3.3 代碼自檢 146
8.3.4 鍵盤快捷鍵 148
8.4 本章小結 149
第9章 自定義Flex Builder 3 150
9.1 優化Flex Builder性能 150
9.1.1 項目開發的最佳實踐 150
9.1.2 Eclipse的性能管理 152
9.2 定製工作颱 156
9.2.1 編輯工作區列錶 156
9.2.2 使用自定義快捷方式 157
9.2.3 高效的布局 158
9.2.4 管理工作區首選項 159
9.3 使用Flex Builder代碼庫 160
9.3.1 使用本地曆史數據 160
9.3.2 用於Subversion源代碼
管理的Subclipse插件 162
9.3.3 分離本地項目 177
9.4 本章小結 181
第III部分 使 用 組 件
第10章 組件的生命周期和類的
層次結構 185
10.1 Flex應用程序中Flash的
作用 185
10.2 Flex框架的生命周期 186
10.2.1 逐幀 186
10.2.2 生命周期 187
10.3 Flex類的層次 189
10.3.1 Flash和Flex類的
程序包 189
10.3.2 UIComponent 189
10.3.3 容器類 191
10.3.4 List類 192
10.3.5 Formatters類、Validators類
和Collection類 192
10.3.6 框架的功能和事件 194
10.4 本章小結 195
第11章 數據綁定和事件的使用 196
11.1 使用花括號{ } 196
11.2 [Bindable]元數據 199
11.3 事件 200
11.3.1 捕獲階段 201
11.3.2 目標階段 201
11.3.3 冒泡處理階段 202
11.4 終止事件 202
11.5 事件偵聽器 203
11.5.1 使用MXML 204
11.5.2 使用ActionScript 204
11.6 事件類型 205
11.7 自定義事件 205
11.7.1 創建自定義事件 205
11.7.2 [Event]元數據 206
11.7.3 使用自定義事件的策略 207
11.8 本章小結 208
第12章 用戶接口控件與容器 209
12.1 靜態控件 209
12.1.1 mx.controls.Label與
mx.controls.Text 209
12.1.2 mx.controls.Image 209
12.1.3 mx.controls.SWFLoader 210
12.1.4 mx.controls.HRule和
mx.controls.VRule 211
12.1.5 mx.controls.ProgressBar 211
12.2 輸入控件 212
12.2.1 mx.controls.Button和
mx.controls.LinkButton 212
12.2.2 mx.controls.TextInput 與
mx.controls.TextArea 212
12.2.3 mx.controls.NumericStepper 213
12.2.4 mx.controls.DateChooser and
mx.controls.DateField 213
12.2.5 mx.controls.CheckBox 214
12.2.6 mx.controls.ComboBox 214
12.2.7 mx.controls.RadioButton and
mx.controls.RadioButton
-Group 215
12.2.8 mx.controls.HSlider和
mx.controls.VSlider 216
12.2.9 mx.controls.RichTextEditor 216
12.2.10 mx.controls.
PopUpButton 217
12.2.11 mx.controls.
PopUpMenuButton 218
12.2.12 mx.controls.ColorPicker 218
12.3 布局容器 219
12.3.1 mx.containers.Canvas 219
12.3.2 mx.container.VBox和
mx.container.HBox 220
12.3.3 mx.containers.HDividedBox
和mx.containers.VDividedBox 220
12.3.4 mx.core.Application、
mx.containers.Panel以及
mx.containers.TitleWindow 221
12.3.5 mx.containers.Grid 222
12.3.6 mx.containers.Tile 224
12.3.7 mx.containers.Form 225
12.3.8 mx.containers.ControlBar 226
12.3.9 mx.containers.Application-
ControlBar 226
12.4 導航組件 227
12.4.1 創建策略 227
12.4.2 mx.containers.Accordion 227
12.4.3 mx.containers.TabNavigator 228
12.4.4 mx.containers.ViewStack 229
12.4.5 mx.controls.LinkBar 230
12.4.6 mx.controls.TabBar 230
12.4.7 mx.containers.MenuBar與
mx.controls.Menu 230
12.4.8 mx.controls.ButtonBar和
mx.controls.ToggleButtonBar 231
12.5 列錶控件 232
12.6 本章小結 233
第13章 布局策略 234
13.1 坐標定位 234
13.2 約束定位 234
13.3 用百分比定位 236
13.4 對齊定位 237
13.5 高級約束 238
13.5.1 ConstraintColumns
(列約束) 239
13.5.2 ConstraintRows(行約束) 240
13.5.3 ActionScript中的約束 240
13.5.4 約束規格 241
13.6 使用includeInLayout 241
13.7 性能注意事項 242
13.8 本章小結 242
第14章 用戶界麵的整閤 243
14.1 創建錶單 243
14.1.1 提交錶單內容 246
14.1.2 使用Flex Builder設計
視圖構建錶單 247
14.1.3 設置錶單上的
defaultButton(默認按鈕) 247
14.2 自定義提示條 248
14.3 構建彈齣控件 250
14.3.1 警告 250
14.3.2 使用PopUpManager 252
14.3.3 與彈齣式控件交互 254
14.4 自定義光標 256
14.4.1 光標管理 256
14.4.2 忙碌狀態的光標 256
14.4.3 手形光標 257
14.4.4 自定義光標 257
14.5 本章小結 258
第15章 AIR入門 259
15.1 AIR的用途 259
15.1.1 使用AIR的原因 260
15.1.2 使用AIR構建的應用
程序 260
15.1.3 AIR的需求 260
15.2 構建AIR應用程序 262
15.2.1 IntroToAIR.mxml文件 262
15.2.2 IntroToAIR-app.xml
描述文件 263
15.3 AIR配置文件 264
15.4 創建一個AIR應用程序
(第Ⅱ部分) 268
15.4.1 修改IntroToAIR.mxml
窗口 268
15.4.2 MainWindow.mxml文件 270
15.4.3 IntroToAIR - app.xml
描述文件 271
15.5 本章小結 273
第IV部分 高級組件開發
第16章 自定義ActionScript組件 277
16.1 企業商標示例 278
16.1.1 UIComponent和
IUIComponent 278
16.1.2 CompanyLogo.as 278
16.2 組件結構 280
16.2.1 組件屬性和Flex框架
生命周期 281
16.2.2 無效函數 281
16.2.3 添加子組件 282
16.2.4 使用invalidateProperties()
函數並且將屬性應用到
組件中 283
16.2.5 測量組件 284
16.2.6 組件布局 285
16.2.7 為組件選擇基類 287
16.2.8 設置子組件的大小 288
16.3 RockerSwitch示例 290
16.4 本章小結 297
第17章 自定義MXML組件 298
17.1 MXML與ActionScript組件 298
17.2 定製布局 299
17.2.1 重寫updateDisplayList()
函數 299
17.2.2 重寫 layoutChrome()
函數 301
17.2.3 創建元數據標簽 302
17.3 構建模闆組件 303
17.3.1 DefaultProperty 元標簽 304
17.3.2 構建自定義子組件 305
17.4 擴展MXML組件 305
17.5 本章小結 306
第18章 擴展Flex組件 307
18.1 復閤組件淺析 307
18.2 構建復閤組件 308
18.2.1 屬性 308
18.2.2 事件 309
18.2.3 布局 311
18.3 擴展現有組件 311
18.3.1 擴展Button 311
18.3.2 擴展TextInput 313
18.3.3 擴展UIComponent與
標準組件 314
18.3.4 外觀和行為 314
18.4 自定義容器 315
18.4.1 應用Flex組件生命
周期 316
18.4.2 標簽雲 316
18.4.3 自定義復閤組件 318
18.5 本章小結 320
第19章 高級事件編程 321
19.1 自定義事件與標準事件 321
19.1.1 繼承標準事件 323
19.1.2 一個與多個 323
19.2 嚮AS類和MXML文件
添加元數據 323
19.2.1 為自定義組件添加
自定義事件 324
19.2.2 處理事件運行時錯誤 324
19.3 事件流 325
19.3.1 事件優先級 325
19.3.2 阻止或更改默認行為 325
19.3.3 轉發事件 326
19.4 自定義數據綁定 328
19.4.1 使用可綁定的元數據
標簽 328
19.4.2 自定義數據綁定與可綁定
的元數據標簽 328
19.5 使用BindingUtils 331
19.5.1 ActionScript中自定義的
數據綁定 331
19.5.2 ChangeWatcher 332
19.6 本章小結 332
第20章 狀態管理 334
20.1 狀態的概念 334
20.2 添加States屬性 335
20.2.1 使用Flex Builder的
Design View創建States
屬性 335
20.2.2 更改States屬性 337
20.2.3 測試示例 337
20.3 MXML標簽 338
20.3.1 添加組件 338
20.3.2 刪除組件 339
20.3.3 消失,但卻沒有銷毀 339
20.3.4 設置和更改屬性與樣式 340
20.3.5 更改事件處理程序 340
20.3.6 數據綁定 341
20.4 在ActionScript中創建狀態 341
20.5 真實的狀態管理 343
20.6 常見問題 343
20.6.1 States與ViewStack 343
20.6.2 優化 344
20.7 本章小結 345
第21章 庫的應用 347
21.1 ActionScript庫 347
21.1.1 Flash Player庫 347
21.1.2 Flex 庫 348
21.2 SWC和SWF 348
21.3 使用Flex Builder創建庫 349
21.3.1 創建庫項目 349
21.3.2 添加資源 350
21.3.3 創建SWC 350
21.4 使用COMPC創建庫 351
21.4.1 COMPC選項 352
21.4.2 添加資源 352
21.4.3 指定清單文件 352
21.5 針對組件庫的最佳實踐 353
21.5.1 共享源目錄 353
21.5.2 建立後進行銷售 354
21.6 應用庫 354
21.6.1 libs文件夾 354
21.6.2 構建路徑 354
21.6.3 利用庫中的資源 355
21.6.4 使用SWC文件 356
21.7 本章小結 356
第V部分 可視化效果與多媒體
第22章 樣式 359
22.1 CSS樣式 359
22.1.1 內聯樣式與CSS 359
22.1.2 組件樣式 361
22.1.3 基於約束的CSS布局 363
22.1.4 CSS樣式和類繼承 365
22.1.5 CSS樣式和子組件 366
22.2 本章小結 369
第23章 皮膚與主題 370
23.1 皮膚的含義 370
23.1.1 嵌入式資源 370
23.1.2 編程皮膚 371
23.1.3 應用皮膚 371
23.1.4 為每個對象定義皮膚 372
23.1.5 在樣式錶中定義皮膚 373
23.1.6 縮放和九宮網格 374
23.1.7 在運行時更改樣式 376
23.2 主題 378
23.2.1 默認的Flex 3主題 379
23.2.2 應用主題 379
23.2.3 創建主題 380
23.2.4 分離主題到庫中 380
23.3 本章小結 381
第24章 視覺特效 382
24.1 Flex特效 382
24.1.1 內置的Flex特效 384
24.1.2 應用特效 391
24.1.3 數據特效 392
24.1.4 緩和功能 394
24.1.5 復閤特效 394
24.1.6 轉場效果 399
24.1.7 特效事件 401
24.1.8 3D特效 402
24.1.9 Flex 4的特效 402
24.2 本章小結 402
第25章 動態皮膚和繪圖API 404
25.1 繪圖API 404
25.2 可編程的皮膚 413
25.3 額外的繪圖API功能 416
25.3.1 遮罩 417
25.3.2 過濾器 418
25.3.3 混閤模式 419
25.3.4 Degrafa 419
25.4 本章小結 420
第26章 Flash集成 421
26.1 Flash平颱的開發流 421
26.2 Flash - Flex工作流 423
26.3 在Flash中創建Flex組件的
皮膚 424
26.4 剝離自定義Flex組件的
皮膚 429
26.4.1 規劃自定義Flex組件 429
26.4.2 構建Flex組件 430
26.4.3 構建Flash皮膚 432
26.4.4 Flex組件的皮膚 436
26.5 本章小結 439
第27章 加載外部資源 440
27.1 加載圖像 440
27.2 SWFLoader類 443
27.3 Loader類 443
27.4 運行時的共享庫 448
27.5 本章小結 448
第28章 視頻和聲音 449
28.1 引進媒體的方法 449
28.1.1 可用的文件格式 449
28.1.2 整閤媒體內容 450
28.2 漸進性加載和流 454
28.2.1 Sound類 455
28.2.2 SoundLoaderContext類 455
28.2.3 播放和控製聲音 456
28.2.4 訪問ID3信息 460
28.2.5 SoundMixer類 462
28.2.6 Microphone類 463
28.3 視頻 463
28.3.1 視頻類和組件 463
28.3.2 VideoDisplay組件 470
28.3.3 提示點 472
28.3.4 Camera類 472
28.3.5 未存檔的視頻類 473
28.3.6 Flash Player
MovieStar Update 473
28.4 本章小結 477
第29章 高級Flash集成 478
29.1 將Flex類應用到Flash中 478
29.1.1 通過RSL導入Flex
自定義類 478
29.1.2 導入本地Flex類 479
29.2 將Flash加載到Flex中 480
29.2.1 適閤Flash CS3的
Flex Component Kit 480
29.2.2 嚮Flex中導入Flash
本地組件 484
29.2.3 Flex組件的自定義狀態
和轉場效果 488
29.3 本章小結 498
第VI部分 數 據 管 理
第30章 處理數據 501
30.1 XML 501
30.1.1 快速的XML入門 501
30.1.2 XML和ActionScript:
在E4X之前 503
30.1.3 XML和ActionScript 3.0:
使用E4X 505
30.2 集閤API 511
30.2.1 IList 511
30.2.2 ICollectionView 511
30.2.3 ListCollectionView 514
30.3 關聯數組/詞典 517
30.3.1 使用字符串作為關鍵字 518
30.3.2 使用對象作為關鍵字 518
30.4 Repeater 520
30.4.1 執行過程中 520
30.4.2 執行後 521
30.4.3 交互處理 522
30.4.4 不使用Repeater 522
30.5 本章小結 523
第31章 格式化程序與驗證器 524
31.1 概述 524
31.2 格式化程序 524
31.2.1 使用標準格式化程序 525
31.2.2 如何處理輸入數據錯誤 528
31.3 驗證器 529
31.3.1 使用標準驗證器 530
31.3.2 更改默認的錯誤消息 532
31.3.3 觸發驗證 533
31.4 ActionScript 3中的正則
錶達式 534
31.4.1 通用正則錶達式用例 534
31.4.2 正則錶達式入門 535
31.5 RegExpValidator:驗證器的
驗證器 535
31.6 定製和集中格式化程序、
驗證器 536
31.6.1 集中格式化程序 536
31.6.2 集中驗證器 537
31.7 本章小結 539
第32章 使用列錶組件 540
32.1 ListBase無處不在 540
32.2 使用List類 544
32.2.1 列錶的項編輯功能 544
32.2.2 子列錶 545
32.3 Menu類 546
32.3.1 創建Menu對象 546
32.3.2 使用Menu類 547
32.4 TileBase類 547
32.4.1 HorizontalList類 547
32.4.2 TileList類 548
32.5 List、HorizontalList和
TileList優化內存消耗 548
32.6 本章小結 549
第33章 高級數據控件 550
33.1 概述 550
33.2 樹型結構 550
33.2.1 給樹添加數據 551
33.2.2 改變樹的外觀 552
33.2.3 應用樹型控件 553
33.3 DataGrid 555
33.3.1 填充DataGrid 555
33.3.2 使用列 556
33.3.3 處理事件 557
33.4 定製呈現器 558
33.4.1 定製單元格 558
33.4.2 標題 562
33.5 AdvancedDataGrid 563
33.5.1 實現AdvancedDataGrid 563
33.5.2 在AdvancedDataGrid中
對數據分組 564
33.5.3 AdvancedDataGrid中的
分層數據 565
33.6 OLAPDataGrid 566
33.6.1 OLAP簡介 566
33.6.2 使用OLAPDataGrid 566
33.7 本章小結 570
第34章 Flex中的拖放操作 571
34.1 概述 571
34.2 處理支持拖放的組件 571
34.2.1 使列錶能夠進行拖放
操作 573
34.2.2 移動項 574
34.2.3 避免復製 574
34.3 處理拖放事件 574
34.4 對不支持拖放的組件添加
拖放支持 575
34.4.1 將組件設置為拖放
初始器 576
34.4.2 將組件設置為釋放
目標對象 577
34.5 另外一些有關拖放的提示 578
34.5.1 自定義DragSource格式 578
34.5.2 自定義拖動代理 578
34.5.3 保留信息類型 579
34.6 本章小結 579
第35章 在AIR中的拖放 580
35.1 AIR拖放概述 580
35.1.1 Clipboard 580
35.1.2 The NativeDragManager 583
35.2 從AIR應用程序中拖動
數據 585
35.2.1 圖像中的剪貼闆數據 585
35.2.2 延遲數據 588
35.3 嚮AIR應用程序中拖動文件 588
35.4 本章小結 592
第36章 使用圖錶組件 593
36.1 理解圖錶 593
36.1.1 為圖錶分配數據 593
36.1.2 圖錶類型 594
36.1.3 圖錶坐標軸 602
36.1.4 圖係列 603
36.1.5 圖錶數據提示 604
31.1.6 圖例 605
36.2 運行時的圖錶交互 605
36.2.1 處理用戶交互 605
36.2.2 編程交互 606
36.3 定製圖錶的外觀 606
36.3.1 自定義渲染器 606
36.3.2 設置樣式 607
36.3.3 效果 607
36.4 本章小結 608
第37章 資源包和數據的本地化 609
37.1 概述 609
37.2 使用屬性文件的L10n 610
37.2.1 理解屬性文件 610
37.2.2 字符編碼處理 611
37.2.3 在Flex項目中構建區域
設置 612
37.3 在Flex 3中實現i18n 614
37.4 在運行時加載資源 617
37.4.1 資源模塊 617
37.4.2 以編程方式生成
ResourceBundle 618
37.4.3 資源與模塊配對 618
37.5 全球化AIR應用程序 618
37.6 本章小結 619
第VII部分 客戶端通信
第38章 Flex中的瀏覽器通信 623
38.1 瞭解Web上下文 623
38.2 使用flashVars將數據
傳遞到Flex中 623
38.3 鏈接到外部頁麵URL 626
38.4 與JavaScript交互 626
38.4.1 從Flex中調用JavaScript 626
38.4.2 從JavaScript函數
調用ActionScript函數 627
38.4.3 在ActionScript和
JavaScript之間傳遞數據 628
38.5 使用Flex-Ajax橋 636
38.6 禁用瀏覽器集成 637
38.7 本章小結 638
第39章 HTML與AIR的混閤 639
39.1 在AIR應用程序中嵌入HTML
的理由 639
39.2 YouTube示例 640
39.3 在AIR中顯示HTML 640
39.3.1 加載遠程內容 640
39.3.2 加載內存中的內容 642
39.3.3 加載本地文件的內容 642
39.4 與JavaScript交互 644
39.4.1 從ActionScript調用
嵌入式JavaScript 644
39.4.2 從JavaScript調用
ActionScript 646
39.4.3 從ActionScript控製HTML
DOM 647
39.5 本章小結 647
第40章 深鏈接 649
40.1 Web上的深鏈接 649
40.2 深鏈接與Flex 649
40.3 Flex 3對深鏈接的支持 651
40.3.1 使用BrowserManager
API 651
40.3.2 在後颱:Flex中的
深鏈接如何工作 655
40.4 真實的深鏈接:空間圖像
瀏覽器 656
40.4.1 示例2:使用導航狀態 657
40.4.2 實例3:更復雜的圖像
瀏覽器 659
40.5 搜索引擎索引和優化 663
40.6 相關的技術和工具 664
40.6.1 SWFAddress 664
40.6.2 UrlKit 665
40.6.3 曆史記錄管理器 665
40.7 本章小結 666
第41章 Flex中的係統交互 667
41.1 檢測客戶端係統性能 667
41.2 全屏顯示 672
41.3 啓用上下文菜單 675
41.3.1 添加和刪除上下文
菜單選項 675
41.3.2 上下文菜單中的調用
操作 678
41.4 係統交互的局限性 681
41.4.1 全屏模式的局限性 681
41.4.2 自定義上下文菜單的
局限性 681
41.5 本章小結 682
第42章 利用AIR技術實現本地
桌麵支持 683
42.1 處理窗口 683
42.1.1 構建本地窗口 683
42.1.2 Native Window Explorer 688
42.2 本地菜單 689
42.2.1 上下文菜單 689
42.2.2 窗口級彆與應用程序
級彆的菜單 695
42.3 與System Tray/Dock交互 697
42.4 檢測用戶狀態 699
42.5 監視網絡連接 700
42.6 AIR的性能與Flash運行庫 701
42.7 啓用全屏模式 702
42.8 本章小結 702
第43章 Local Connection與共享對象 703
43.1 概述 703
43.2 LocalConnection類 703
43.2.1 SWF之間的通信 703
43.2.2 跨域邊界 705
43.2.3 使用數據 707
43.2.4 在40KB限製下正常工作 707
43.2.5 標準的LocalConnection
錯誤 707
43.3 使用本地共享對象 708
43.3.1 創建或檢索本地共享
對象 708
43.3.2 在本地共享對象中
存儲數據 708
43.3.3 從本地共享對象檢索
數據 708
43.3.4 顯式保存本地共享對象 709
43.3.5 刪除屬性和銷毀本地
共享對象 710
43.3.6 補充信息 710
43.3.7 序列化自定義類 713
43.4 本章小結 714
第44章 Flex的文件管理 715
44.1 概述 715
44.2 使用FileReference類 716
44.2.1 處理FileReference類的
事件 716
44.2.2 文件上傳 717
44.2.3 用FileReference類
下載文件 719
44.2.4 取消文件的上傳或下載 720
44.3 使用多個文件 720
44.4 服務端需考慮的事項 721
44.5 本章小結 722
第45章 AIR的本地文件管理 723
45.1 文件操作 723
45.1.1 引用目錄 723
45.1.2 引用文件 724
45.1.3 導航路徑 724
45.2 同步和異步API 725
45.2.1 同步復製文件 726
45.2.2 異步復製文件 727
45.3 其他的文件和目錄操作 728
45.3.1 檢查存在性 728
45.3.2 刪除文件和目錄 728
45.3.3 移動文件和目錄 729
45.3.4 枚舉目錄 729
45.3.5 創建臨時目錄和文件 730
45.4 使用本地文件對話框 730
45.4.1 本地目錄瀏覽器 730
45.4.2 用於打開對話框的本地
瀏覽器 732
45.4.3 打開多個對話框的本地
瀏覽器 733
45.4.4 本地文件保存對話框 734
45.5 讀取和寫入文件數據 735
45.5.1 將位圖數據另存為JPEG
文件 735
45.5.2 從文件中讀取XML
數據 737
45.6 文件係統控件 737
45.7 加密本地數據 739
45.7.1 寫入數據 740
45.7.2 讀取數據 740
45.7.3 刪除數據 740
45.8 本章小結 741
第VIII部分 服務器集成
第46章 RPC服務簡介 745
46.1 概述 745
46.2 mx.rpc庫 746
46.2.1 MXML與ActionScript類
之間的差異 747
46.2.3 參數綁定與顯式參數
傳遞 748
46.3 使用HTTPService組件 748
46.4 使用WebService組件 750
46.4.1 在MXML中使用
WebService 751
46.4.2 把WSDL操作轉換為
MXML請求 752
46.4.3 在ActionScript中調用
WebService 753
46.5 調試遠程服務調用 755
46.5.1 網絡數據包探查 755
46.5.2 mx.rpc庫中的調試跟蹤 755
46.6 選擇協議與服務器實現 759
46.7 AMF的另一種服務器實現
方案 759
46.8 本章小結 760
第47章 錯誤處理 761
47.1 通過同步代碼處理異常 761
47.1.1 Flash Debug Player與
Release Player 761
47.1.2 Try/Catch/Finally 762
47.1.3 異常冒泡 764
47.1.4 自定義錯誤類型 766
47.1.5 THROW 766
47.1.6 函數中的錯誤處理 767
47.2 事件的異步錯誤處理 768
47.2.1 重要的錯誤事件 768
47.2.2 Debug Player中的異步
事件 769
47.3 本章小結 770
第48章 Flex和Flash媒體服務器 771
48.1 使用FMS視頻流的好處 771
48.2 安裝應用程序和瞭解實例 773
48.3 在Flex中開發FMS 773
48.4 基於FMS理解Netstream類 778
48.5 緩存控製 779
48.6 發布視頻 779
48.7 數據流 782
48.8 本章小結 784
第49章 Flex和Zend框架下的 REST
風格的Web服務 785
49.1 REST風格的 Web服務 785
49.2 REST風格的路由示例
API 786
49.2.1 設置服務器和開發環境 787
49.2.2 可能需要的客戶端軟件 789
49.3 Zend框架的工作原理 790
49.4 Flex示例應用程序 792
49.4.1 從一個REST風格的
服務中檢索數據 793
49.4.2 使用REST風格的服務
創建和更新數據 798
49.4.3 從REST風格的服務中
刪除數據 800
49.5 本章小結 800
第50章 集成Flex和Java 801
50.1 Routes Web Service簡介 801
50.2 設置服務器和開發環境 802
50.2.1 服務器端軟件需求 802
50.2.2 可能需要的客戶端
軟件 803
50.3 Grails Routes Web Service 804
50.4 Flex示例應用程序 807
50.4.1 RouteService.as 服務類 807
50.4.2 使用IResponder 807
50.4.3 使用自定義的服務器端
錯誤 810
50.5 本章小結 814
第51章 .NET與Flex環境下的Web
服務 815
51.1 Routes Web Service簡介 815
51.2 設置服務器和開發環境 816
51.2.1 服務端軟件需求 816
51.2.2 可能需要的客戶端
軟件 817
51.3 .NET Routes Web Service 817
51.4 Flex示例應用程序 821
51.4.1 Import Web Service(WSDL)
工具 821
51.4.2 訪問Web服務 823
51.4.3 處理自定義的服務器端
錯誤 824
51.5 本章小結 826
第52章 通過AIR訪問離綫數據 827
52.1 SQLite簡介 827
52.2 同步與異步 828
52.3 創建數據庫 828
52.3.1 異步打開一個數據庫 829
52.3.2 同步打開一個數據庫 830
52.3.3 使用數據定義語言 831
52.4 使用數據 833
52.4.1 創建數據 833
52.4.2 檢索數據 836
52.4.3 更新數據 836
52.4.4 刪除數據 838
52.5 使用事務導入數據 839
52.6 使在綫數據可脫機訪問 841
52.6.1 嚮SQLite數據庫導入
XML 841
52.6.2 為SQLite導入程序
改進XML 845
52.7 使用第三方SQLite數據庫
管理應用程序 846
52.8 本章小結 846
第IX部分 數 據 服 務
第53章 LCDS簡介 849
53.1 LCDS概述 849
53.2 理解LCDS 850
53.2.1 數據服務解決方案 851
53.2.2 客戶端架構 851
53.2.3 服務器架構 853
53.2.4 服務類型 854
53.2.5 通信通道 856
53.2.6 動作消息格式(AMF) 857
53.3 使用Flex Builder創建LCDS
項目 857
53.3.1 新的Flex項目嚮導 858
53.3.2 配置應用服務器 860
53.4 故障排除 862
53.4.1 日誌 862
53.4.2 服務器端調試 863
53.5 本章小結 863
第54章 LCDS與ColdFusion 864
54.1 ColdFusion 8與集成的
LCDS 864
54.1.1 LCDS特定ColdFusion
安裝窗口 864
54.1.2 LCDS特定ColdFusion
管理員窗口 866
54.2 事件網關 867
54.2.1 DataServicesMessaging 868
54.2.2 DataManagement 868
54.3 數據管理 868
54.4 本章小結 869
第55章 消息服務 870
55.1 消息服務概述 870
55.2 消息服務技術簡介 870
55.2.1 發布與訂閱 871
55.2.2 生産者與使用者 871
55.2.3 通過通道傳遞消息 871
55.2.4 從服務器發布消息 871
55.3 使用消息服務 871
55.3.1 在服務器上配置目標
地址 872
55.3.2 在客戶端上創建消息 873
55.3.3 發送消息 875
55.3.4 接收消息 876
55.3.5 在MXML中聲明生産者
和使用者 877
55.3.6 過濾消息 877
55.3.7 檢測連接性 878
55.3.8 從服務器發布 879
55.4 消息服務應用程序 881
55.4.1 示例1:聊天室 881
55.4.2 示例2:股票價格監控
係統 884
55.4.3 示例3:生成PDF
文檔 888
55.5 本章小結 894
第56章 數據管理服務 896
56.1 概述 896
56.2 為什麼要使用DMS 896
56.2.1 關於域建模 896
56.2.2 創建、讀取、更新、刪除 897
56.2.3 用戶之間的數據共享 897
56.2.4 大數據集的分頁 897
56.2.5 偶爾的連接性 898
56.3 眼見為實:Six-Line Demo 898
56.3.1 第1行:聲明一個數據
服務 899
56.3.2 第2行:為托管數據聲明
一個集閤 899
56.3.3 第3行:為數據網格提
供托管數據 900
56.3.4 第4行:填充集閤 900
56.3.5 第5行:提交更改和同步
客戶端 900
56.3.6 第6行:撤銷更改 900
56.3.7 後颱操作 900
56.4 DMS技術解釋 901
56.4.1 客戶端組件和服務器
組件 901
56.4.2 托管數據 901
56.4.3 托管關係 902
56.4.4 客戶端編程 902
56.4.5 服務器集成 904
56.4.6 客戶端與服務器端的
協作 905
56.5 應用程序示例:DMS Fleet
Tracker 905
56.5.1 域建模 905
56.5.2 DMS的配置 908
56.5.3 自定義匯編程序 911
56.5.4 客戶端編碼 914
56.5.5 進一步的思考 917
56.6 本章小結 917
第57章 高級數據管理服務 918
57.1 DMS概述 918
57.2 概要到細節建模 918
57.3 剋服項掛起的錯誤 920
57.4 管理共享和用戶特定的
數據 921
57.4.1 一個簡單的即時消息
係統 921
57.4.2 創建新的
MessageDetails項 922
57.4.3 創建和傳遞用戶消息 922
57.4.4 到NIO端點的流式
AMF 924
57.5 深入學習 925
57.6 本章小結 926
第58章 Data Service Stress Testing
Framework 927
58.1 概述 927
58.2 數據管理服務應用程序的
壓力測試 928
58.2.1 先決條件 929
58.2.2 編寫測試應用程序 929
58.2.3 配置服務器 931
58.2.4 配置和啓動瀏覽器
服務器 934
58.2.5 編譯Test Administrator 934
58.2.6 運行壓力測試 935
58.3 深入討論 936
58.3.1 參數化測試應用程序 936
58.3.2 預先配置
Test Administrator 936
58.3.3 創建定製的測試報告 937
58.4 本章小結 938
第59章 使用BlazeDS 939
59.1 概述 939
59.2 BlazeDS的功能 939
59.2.1 服務器和客戶端組件 940
59.2.2 通信通道 941
59.2.3 集成點 941
59.3 開發BlazeDS項目 941
59.3.1 安裝BlazeDS即用版 942
59.3.2 創建組閤的Flex/Java
項目 943
59.3.3 使用遠程對象 945
59.3.4 HTTP和Web服務 952
59.4 本章小結 956
第X部分 使 用 Cairngorm
第60章 MVC框架 959
60.1 什麼是MVC 959
60.2 MVC組件 959
60.2.1 瞭解數據模型 960
60.2.2 瞭解視圖 960
60.2.3 瞭解控製器 961
60.2.4 把三者組閤在一起 961
60.3 為什麼使用MVC 962
60.3.1 抽象 962
60.3.2 組件重用 962
60.3.3 分布式開發 962
60.3.4 維護 963
60.3.5 有最權威的MVC嗎 963
60.4 組件架構的MVC方法 963
60.5 本章小結 964
第61章 Cairngorm簡介 965
61.1 概述 965
61.2 Cairngorm交互的步驟 965
61.2.1 用戶動作 966
61.2.2 分派一個事件 966
61.2.3 命令執行 968
61.2.4 委托業務功能 969
61.2.5 定位和調用一個服務 970
61.2.6 模型的定位和更新 971
61.2.7 變化在視圖中的反映 973
61.3 本章小結 975
第62章 Cairngorm應用 976
62.1 概述 976
62.2 主要角色 977
62.3 前端控製器 982
62.3.1 前端控製器的內部
構造 982
62.3.2 ShopController 983
62.3.3 聲明前端控製器 984
62.4 Cairngorm事件 984
62.4.1 事件類 985
62.4.2 事件類型 985
62.4.3 事件作為參數對象 986
62.4.4 自分派事件 987
62.4.5 Cairngorm命令 987
62.4.6 業務委托 990
62.4.7 在命令中使用業務 委托 990
62.4.8 創建業務委托 991
62.4.9 服務定位器 992
62.4.10 值對象 994
62.5 本章小結 997
第63章 高級Cairngorm 998
63.1 錶示模型模式 998
63.1.1 使用Cairngorm錶示
模型 999
63.1.2 Cairngorm錶示模型的
示例應用程序 1000
63.1.3 域模型 1003
63.1.4 進一步討論 1003
63.2 組織Cairngorm項目 1003
63.2.1 小型Cairngorm項目 1004
63.2.2 大型Cairngorm項目 1004
63.3 Cairngorm的反模式 1005
63.3.1 胖控製器 1005
63.3.2 廢物處理定位器模型 1007
63.3.3 依賴的鏈 1008
63.4 自定義Cairngorm 1009
63.4.1 記錄Cairngorm事件和
命令 1009
63.4.2 安排異步命令的執行
時間 1010
63.4.3 將依賴性注入命令中 1012
63.4.4 存根服務層 1013
63.4.5 分散控製器 1014
63.4.6 可釋放的控製器 1015
63.5 本章小結 1016
第XI部分 應用程序開發策略
第64章 最佳實踐 1019
64.1 編碼標準 1019
64.1.1 一緻性 1019
64.1.2 清晰性 1019
64.1.3 整潔性 1020
64.2 麵嚮對象的原則 1026
64.2.1 封裝 1026
64.2.2 使用公有/私有/受保護的/
最終函數 1027
64.2.3 繼承 1028
64.2.4 代碼隱藏 1035
64.3 本章小結 1036
第65章 安全模型 1037
65.1 瞭解安全沙箱 1037
65.2 什麼是crossdomain.xml 1038
65.2.1 allow-access-from 1039
65.2.2 allow-http-request-
headers-from 1040
65.2.3 site-control和元策略 1041
65.3 本地沙箱 1042
65.3.1 local-with-filesystem 1042
65.3.2 local-with-networking 1043
65.3.3 local-trusted 1043
65.4 本章小結 1044
第66章 模塊化應用程序開發 1045
66.1 概述 1045
66.2 為什麼要進行模塊化
開發 1046
66.3 構建組件 1046
66.4 運行時共享庫 1046
66.5 使用Module類和
ModuleLoader類 1047
66.5.1 跨模塊通信 1050
66.5.2 跨模塊數據訪問 1055
66.6 本章小結 1061
第67章 應用程序性能策略 1062
67.1 理解對象的創建策略 1062
67.2 針對性能構建數據 1063
67.2.1 延遲加載數據 1063
67.2.2 多重服務調用的影響 1064
67.3 管理事件偵聽器和數據
綁定 1064
67.3.1 集閤事件 1065
67.3.2 清理無用的事件
偵聽器 1066
67.3.3 弱引用事件偵聽器 1066
67.3.4 手動清理事件偵聽器 1067
67.4 關聯數組和字典 1068
67.5 使用圖形 1069
67.5.1 幀率 1070
67.5.2 使用位圖緩存 1070
67.5.3 管理外部SWF內容 1070
67.5.4 對象緩存和迴收 1071
67.6 本章小結 1072
第68章 使用ASDoc創建項目
文檔 1073
68.1 什麼是ASDoc 1073
68.2 使用ASDoc 1074
68.3 ASDoc注釋和格式 1074
68.3.1 ASDoc標記 1075
68.3.2 類 1076
68.3.3 函數 1076
68.3.4 屬性 1077
68.3.5 getter和setter函數 1078
68.3.6 元數據 1080
68.3.7 HTML格式 1080
68.3.8 引用外部元素 1081
68.3.9 排除生成的輸齣中
的類 1082
68.3.10 應用自定義模闆 1083
68.4 本章小結 1083
第69章 使用AIR部署桌麵 1084
69.1 代碼簽名和證書 1084
69.1.1 獲取證書 1085
69.1.2 在Flex Builder中創建和
簽名AIR包 1087
69.1.3 使用開發人員證書添加
代碼簽名 1088
69.2 使用命令行打包和為AIR
應用程序添加簽名 1090
69.3 發布AIR應用程序 1090
69.3.1 Web頁麵徽章安裝 1091
69.3.2 使用Web Badge SDK 1091
69.3.3 自動安裝 1094
69.4 更新AIR應用程序 1094
69.5 本章小結 1095
第70章 針對Flex和AIR進行雙重
部署 1097
70.1 通過接口編碼 1097
70.1.1 優點 1099
70.1.2 缺點 1099
70.1.3 構建Flex Builder項目 1099
70.1.4 引用MainAppEntryPoint
組件 1100
70.1.5 使用IApplicationPersistence
接口 1102
70.1.6 使用Application-
PersistenceFactory 1103
70.2 使用條件編譯 1105
70.2.1 優點 1105
70.2.2 缺點 1106
70.2.3 條件編譯方法概述 1106
70.2.4 查看ApplicationPersistence
文件 1106
70.2.5 配置Flex編譯器 1107
70.3 本章小結 1108
第XII部分 測試和調試
第71章 調試Flex應用程序 1111
71.1 概述 1111
71.2 Flash Debug Player 1111
71.3 Flex Builder調試透視圖 1112
71.3.1 設置斷點 1112
71.3.2 在Debug模式下啓動
應用程序 1114
71.3.3 單步調試代碼 1115
71.3.4 檢查應用程序的狀態 1117
71.4 命令行調試器 1120
71.5 額外的調試技術 1120
71.5.1 調試Java服務器代碼 1120
71.5.2 Internet流量監控 1122
71.5.3 特定於應用程序的
調試 1123
71.5.4 最大程度地利用日誌 1124
71.5.5 調試綁定 1124
71.5.6 Adobe公用的bug數據庫
和問題報告係統 1126
71.6 本章小結 1129
第72章 使用Flex概要分析器 1130
72.1 概述 1130
72.2 準備工作 1130
72.3 概要分析的基礎知識 1131
72.3.1 概要分析和優化最佳
實踐 1131
72.3.2 內存概要分析基礎知識 1132
72.3.3 性能概要分析基礎 1132
72.3.4 采樣概要分析器基礎 1133
72.4 Flex Builder 3的概要分析 1133
72.4.1 概要分析透視圖 1133
72.4.2 啓動概要分析器 1134
72.4.3 使用內存概要分析器 1137
72.4.4 使用性能概要分析器 1144
72.4.5 在概要分析器中過濾 1147
72.4.6 保存和加載概要分析
數據 1148
72.4.7 其他有用的功能 1149
72.5 概要分析器的應用 1151
72.5.1 使用概要分析器來檢測
內存泄漏 1151
72.5.2 使用概要分析器來
優化算法 1155
72.6 創建自己的概要分析器 1159
72.7 本章小結 1160
第73章 使用FlexUnit的單元測試
與測試驅動開發 1161
73.1 概述 1161
73.2 為什麼編寫測試 1162
73.2.1 從一開始預防bug 1162
73.2.2 獲得重構的信心 1162
73.2.3 設計中的驅動改進 1162
72.2.4 編寫可測試軟件 1162
73.2.5 快樂的開發人員和輕鬆
製作的文檔 1163
73.3 技術和術語 1163
73.3.1 FlexUnit庫 1163
73.3.2 單元測試、測試用例
和測試套件 1163
73.3.3 運行測試 1164
73.4 測試驅動開發的示例 1164
73.4.1 準備單元測試 1165
73.4.2 創建測試用例 1165
73.4.3 組裝測試套件 1166
73.4.4 測試未能通過 1167
73.4.5 準備、調用、斷言 1168
73.4.6 快樂和不快樂的
路徑 1171
73.4.7 安裝和卸載 1173
73.4.8 測試中的白色區域 1175
73.5 高級主題 1175
73.5.1 組織測試套件 1175
73.5.2 刪除與模擬對象的依賴
關係 1176
73.5.3 Ant和Maven的持續
集成 1180
73.5.4 重要的測試用例 1180
73.5.5 測試覆蓋 1181
73.5.6 行為驅動開發 1181
73.6 本章小結 1181
第74章 日誌框架 1183
74.1 概述 1183
74.2 使用日誌框架 1183
74.2.1 創建日誌目標 1183
74.2.2 獲得正確的記錄器 1184
74.2.3 在不同級彆進行
日誌記錄 1185
74.2.4 過濾日誌語句 1185
74.2.5 隻在必要時進行日誌
記錄 1186
74.3 定製日誌框架 1187
74.3.1 實現遠程日誌目標 1187
74.3.2 實現Java遠程記錄器 1188
74.3.3 創建進行遠程日誌記錄的
客戶端 1190
74.4 深入主題 1191
74.4.1 嵌入式日誌查看器 1191
74.4.2 Stopwatch日誌記錄 1193
74.4.3 使用ThunderBolt把日誌
記錄到Firebug中 1195
74.4.4 從生産代碼中刪除
日誌 1197
74.5 本章小結 1198
第75章 自動化框架 1199
75.1 概述 1199
75.2 自動化框架的定義 1199
75.2.1 記錄和重放 1200
75.2.2 自動化庫 1201
75.2.3 運行時或編譯時
自動化 1201
75.2.4 組件標識 1201
75.3 一個簡單應用程序的
自動化 1202
75.3.1 安裝一個自動化工具 1202
75.3.2 創建一個可測試的
應用程序 1203
75.3.3 編譯自動化 1203
75.3.4 記錄一個測試腳本 1204
75.3.5 重放測試腳本 1207
75.4 高級主題 1208
75.4.1 自動化自定義組件 1208
75.4.2 創建自定義代理 1208
75.5 本章小結 1209
附錄A ActionScript語言對比 1211
· · · · · · (
收起)