作品信息
原書名:Flex 4 in Action
作者: (美)Tariq Ahmed Dan Orlando John C. Bland II Joel Hooks
出版日期:2012 年1月
開本:16開
頁碼:1
版次:1-1
目錄
《flex 4實戰》
第Ⅰ部分 應用程式基礎知識
第1章 認識flex 3
1.1 web應用程式為何大行其道 3
1.2 ria解決方案 5
1.2.1 他們什麼都想要 5
1.2.2 ria的解決之道 6
1.2.3 ria的工作原理 6
1.3 ria的競爭技術 6
1.3.1 adobe公司的flex 7
1.3.2 microsoft公司的silverlight 7
1.3.3 sun公司的javafx 8
1.3.4 ajax——終點站 8
1.4 熟悉flex 10
1.4.1 利用adobe flash的優勢 11
1.4.2 flex與javascript可以一起使用 11
1.4.3 flex技術體系 12
1.5 flex的工作原理 14
1.5.1 flex語言 14
1.5.2 事件驅動的環境 16
.1.5.3 flex的局限 17
1.6 flex 4的新功能 18
1.7 小結 19
第2章 從零開始 21
2.1 經濟的flex開發方式 21
2.1.1 建立編譯環境 22
2.1.2 建立編輯環境 23
2.1.3 第三步(但願讀者還感興趣) 24
2.2 使用flash builder做真正的 開發 24
2.2.1 產品和價格表 25
2.2.2 獲得flash builder 26
2.3 探索flash builder 26
2.4 視圖與視角 28
2.4.1 預定義的視角 28
2.4.2 切換視角 28
2.4.3 自定義視角 29
2.5 第一個項目——helloworld 30
2.5.1 創建項目 30
2.5.2 輸入代碼 32
2.5.3 編譯和運行 32
2.5.4 查看實際效果 33
2.6 使用設計模式 33
2.7 內置的參考和api文檔 34
2.7.1 面向對象語言及其api 35
2.7.2 訪問api參考 35
2.7.3 研讀api參考 36
2.8 mxml與actionscript速寫 37
2.8.1 mxml的結構 37
2.8.2 mxml與actionscript的關係 38
2.8.3 事件由actionscript處理 39
2.9 小結 41
第3章 使用actionscript 43
3.1 注釋 43
3.1.1 行內注釋 44
3.1.2 多行注釋 44
3.2 變數 44
3.2.1 變數名 44
3.2.2 嚴格數據類型 44
3.2.3 靜態類型檢查與動態類型檢查 45
3.2.4 頂級類 45
3.2.5 特殊數據類型 46
3.3 循環 46
3.3.1 for(初始值;條件;遞增) 47
3.3.2 for(屬性名in數組/對象) 47
3.3.3 for each(項in數組/對象) 48
3.3.4 while(條件) 48
3.3.5 do while(條件) 49
3.4 條件語句(if和switch) 49
3.4.1 if…else 49
3.4.2 switch語句 51
3.5 數組 52
3.5.1 索引數組 53
3.5.2 關聯數組 55
3.6 actionscript特色語法 56
3.6.1 花括弧 57
3.6.2 邏輯操作符及捷徑 57
3.7 函式、類和包簡介 59
3.7.1 創建函式 59
3.7.2 將actionscript代碼保存在單獨的檔案中 63
3.8 簡單的數據綁定 64
3.8.1 不使用綁定 64
3.8.2 添加綁定 64
3.8.3 綁定標籤 65
3.8.4 使actionscript變數可被綁定 66
3.9 小結 67
第4章 布局和容器 69
4.1 spark與halo(mx) 69
4.2 絕對布局 70
4.3 基於約束的布局 72
4.3.1 基本約束 73
4.3.2 增強的約束 74
4.4 自動布局 79
4.4.1 使用布局類 79
4.4.2 需要空間 81
4.5 可變大小和固定大小 82
4.5.1 可變大小 82
4.5.2 固定大小 82
4.6 容器 82
4.6.1 application容器 83
4.6.2 canvas容器 84
4.6.3 基於group的容器和skinnablecontainer 84
4.6.4 panel容器 87
4.6.5 applicationcontrolbar容器 87
4.6.6 datagroup和skinnabledatacontainer 88
4.6.7 dividedbox、hdividedbox和vdividedbox容器 91
4.6.8 form容器 92
4.6.9 grid容器 93
4.7 小結 94
第5章 顯示錶單與捕獲用戶輸入 95
5.1 id特性 96
5.2 flex控制項分類 97
5.2.1 text控制項 97
5.2.2 date控制項 99
5.2.3 numeric控制項 101
5.2.4 flex的按鈕組件 103
5.2.5 選單控制項 108
5.3 訪問控制項的值 110
5.3.1 向函式傳遞值 111
5.3.2 向函式傳遞事件 111
5.3.3 直接訪問屬性 112
5.3.4 應該選擇哪種方式 114
5.4 小結 114
第6章 驗證用戶輸入 115
6.1 驗證簡介 115
6.2 內置驗證器 116
6.2.1 validator 117
6.2.2 stringvalidator 118
6.2.3 numbervalidator 119
6.2.4 datevalidator 120
6.2.5 emailvalidator 122
6.2.6 creditcardvalidator 123
6.2.7 currencyvalidator 124
6.2.8 phonenumbervalidator 125
6.2.9 regexpvalidator 125
6.2.10 socialsecurityvalidator 127
6.2.11 zipcodevalidator 128
6.3 實時驗證 129
6.4 提交值驗證 130
6.5 通過性驗證 130
6.6 腳本式驗證 131
6.7 驗證技巧 132
6.7.1 驗證器是否總是檢查所有條件 132
6.7.2 控制由什麼來觸發驗證操作 133
6.8 小結 133
第7章 格式化數據 135
7.1 內置格式化程式 136
7.1.1 formatter 136
7.1.2 numberformatter 136
7.1.3 currencyformatter 138
7.1.4 dateformatter 139
7.1.5 phoneformatter 142
7.1.6 zipcodeformatter 144
7.1.7 switchsymbolformatter 145
7.2 實時格式化 146
7.3 腳本式格式化 147
7.3.1 結合使用函式與格式化程式組件 147
7.3.2 結合使用函式與格式化程式類 148
7.4 處理格式化錯誤 149
7.5 小結 150
第8章 mx datagrid、列表和樹 151
8.1 基於列表的一系列mx組件 151
8.1.1 listbase和advancedlistbase的屬性 152
8.1.2 mx listbase事件 153
8.2 集合與dataprovider 153
8.2.1 填充dataprovider 154
8.2.2 集合的類型 154
8.2.3 集合的使用者 154
8.3 集合的初始化 155
8.4 集合的填充 156
8.4.1 list組件 156
8.4.2 horizontallist組件 159
8.4.3 tilelist組件 160
8.4.4 datagrid組件 162
8.4.5 tree組件 166
8.5 與基於list的mx組件互動 168
8.5.1 列表事件 168
8.5.2 向函式傳遞事件 168
8.5.3 向函式中傳遞數據 170
8.5.4 直接訪問被選定的行 171
8.5.5 綁定到被選定的行 171
8.6 小結 172
第9章 使用spark列表控制項 173
9.1 基於sparklist的一系列 組件 173
9.1.1 使用名稱空間標識合適的組件 173
9.1.2 使用基於list的spark控制項的項渲染器 174
9.2 基於list的spark控制項 174
9.2.1 buttonbar控制項 175
9.2.2 sparklist控制項 176
9.2.3 dropdownlist控制項 177
9.3 與基於list的spark組件的 互動 179
9.3.1 選擇項目時默認分發事件 179
9.3.2 indexchangedevent對象 179
9.4 理解flex 4基於list的組件 架構 180
9.4.1 類層次結構 180
9.4.2 新的基於list的spark組件類 181
9.5 在spark架構中構建基於 list的自定義組件 181
9.5.1 理解group和skinnablecontainer類 182
9.5.2 構建自定義sparklist組件 182
9.6 小結 186
第10章 自定義列表 187
10.1 自定義數據顯示 187
10.1.1 labelfield屬性 187
10.1.2 標籤函式 188
10.1.3 標籤函式的類型 189
10.1.4 使用多列標籤函式 190
10.1.5 標籤函式的用途 192
10.1.6 從全局考慮 192
10.2 項渲染器 192
10.2.1 spark mxml項 渲染器 193
10.2.2 在spark中對mx組件 使用mxml項渲染器 194
10.2.3 創建行內項渲染器 198
10.2.4 使用混入項渲染器 198
10.3 項編輯器 200
10.3.1 啟用項編輯功能 200
10.3.2 創建項編輯器 202
10.3.3 項編輯事件 204
10.3.4 合二為一:rendereriseditor 205
10.4 高級項渲染器 205
10.4.1 advanceddatagridrenderer provider 206
10.4.2 引用列 207
10.4.3 跨列使用 208
10.4.4 實現通行顯示 208
10.5 濾鏡函式 210
10.6 小結 211
第Ⅱ部分 應用程式流與結構
第11章 事件 215
11.1 事件系統 215
11.1.1 事件系統——好萊塢 原則 217
11.1.2 事件傳送系統 217
11.2 傳送和接收事件 218
11.2.1 使用actionscript添加 事件監聽器 220
11.2.2 綁定事件 222
11.2.3 移除事件監聽器 225
11.3 自定義事件 227
11.3.1 分派自定義事件類型 227
11.3.2 創建自定義事件 228
11.3.3 向自定義分派器中添加 事件元數據 232
11.3.4 停止事件傳播 234
11.4 小結 236
第12章 應用程式導航 237
12.1 準備選單數據 237
12.1.1 嵌套的數組 238
12.1.2 嵌套的數組集合 238
12.1.3 模型 240
12.1.4 xml組件和類 241
12.1.5 xmllist組件 242
12.1.6 xmllistcollection 組件及類 242
12.2 使用選單 244
12.2.1 創建選單 245
12.2.2 定位選單 246
12.2.3 自定義選單項 246
12.2.4 與選單互動 248
12.3 使用選單欄 250
12.3.1 創建選單欄 250
12.3.2 定位選單欄 251
12.3.3 自定義選單欄中的項 251
12.3.4 處理用戶與選單欄的 互動 252
12.4 使用viewstack 254
12.4.1 創建viewstack 255
12.4.2 為viewstack添加導航 功能 257
12.4.3 處理用戶與viewstack的 互動 260
12.5 tabnavigator 261
12.5.1 創建tabnavigator 261
12.5.2 處理用戶與tabnavigator的互動 262
12.6 accordion 263
12.6.1 創建accordion 263
12.6.2 填充accordion 264
12.6.3 處理用戶與accordion的互動 265
12.7 小結 265
第13章 彈出式視窗簡介 267
13.1 創建首個彈出式視窗 267
13.1.1 首先創建標題視窗 267
13.1.2 使用popupmanager打開視窗 268
13.1.3 關閉彈出式視窗 270
13.2 控制視窗位置 270
13.2.1 使用centerpopup()方法 271
13.2.2 計算視窗的位置 271
13.3 彈出式視窗與數據的結合 274
13.3.1 從彈出式視窗中取得數據 277
13.3.2 傳送包含數據的自定義事件 277
13.3.3 取出數據 278
13.3.4 向視窗中傳送數據 279
13.4 使用警告視窗 282
13.4.1 創建簡單的警告視窗 282
13.4.2 挖掘警告視窗的潛力 282
13.4.3 高級警告視窗 283
13.4.4 修飾警告視窗 284
13.5 小結 286
第14章 實現視圖狀態 287
14.1 理解視圖狀態 287
14.2 flex中的視圖狀態 288
14.2.1 使用屬性 290
14.2.2 使用事件處理程式 293
14.2.3 使用狀態組 295
14.2.4 添加和移除組件 297
14.2.5 更改組件的父組件 302
14.2.6 狀態事件 304
14.3 綜合運用 306
14.4 小結 307
第15章 使用數據服務 309
15.1 訪問伺服器端數據 309
15.1.1 使用httpservice對象 310
15.1.2 通過webservice組件使用web服務 312
15.2 活動訊息格式 313
15.2.1 開源amf 314
15.2.2 amf與php 314
15.2.3 amf和coldfusion 314
15.2.4 blazeds 314
15.2.5 livecycle data service 315
15.2.6 其他技術 315
15.3 使用flash builder構建以數據為中心的應用程式 315
15.3.1 建立正確的環境 315
15.3.2 與伺服器建立連線 316
15.4 使用coldfusion進行以數據為中心的flex 322
15.5 使用java ee和blazeds進行以數據為中心的flex開發 324
15.6 把模型綁定到視圖上 325
15.6.1 拖放式數據綁定 325
15.6.2 生成一個大綱-細節表單 326
15.6.3 檢查flash builder代碼 327
15.7 小結 329
第16章 對象和類 331
16.1 用5分鐘的時間理解oo理論 331
16.1.1 對象和類的關係 331
16.1.2 對象擁有屬性和方法 332
16.1.3 繼承 333
16.1.4 封裝和耦合 334
16.2 操作對象 335
16.2.1 進一步了解對象 335
16.2.2 對象的方法 336
16.2.3 方法的參數 337
16.2.4 方法返回信息 337
16.3 創建類 338
16.3.1 創建類檔案 338
16.3.2 指定包 339
16.3.3 類修飾符 339
16.3.4 超類:擴展類 339
16.3.5 接口 340
16.3.6 分析類 340
16.4 操作屬性 341
16.4.1 添加屬性 341
16.4.2 添加getter/setter方法 342
16.5 創建類的方法 343
16.6 小結 346
第17章 自定義組件 347
17.1 理解flex 4組件 347
17.1.1 spark組件架構 348
17.1.2 自定義組件的種類 349
17.2 創建簡單的自定義組件 352
17.2.1 構建簡單的combobox 352
17.2.2 簡單的spark組件 354
17.3 使用spark skin對象進行換膚 355
17.3.1 使用元數據綁定組件皮膚 356
17.3.2 自定義組件視圖狀態 356
17.3.3 定義皮膚部件 357
17.3.4 聲明host 358
17.4 複合組件 358
17.4.1 比較halo與spark 359
17.4.2 spark布局類 360
17.4.3 創建mxml複合組件 361
17.5 創建高級flex 4組件 363
17.5.1 使用actionscript構建州選擇器 363
17.5.2 確定何時重寫 364
17.6 組件的通信 368
17.6.1 使用getter和setter作為屬性代理 369
17.6.2 將變數綁定到組件屬性 370
17.6.3 使用事件傳遞數據 371
17.7 小結 373
第18章 創建可重用組件 375
18.1 利用可重用性 375
18.1.1 reveal組件的背景 376
18.1.2 spark可重用性的理論和概念 376
18.1.3 創建reveal組件 378
18.1.4 為第一個reveal實現添加皮膚 380
18.2 reveal的新外觀 383
18.3 運行時共享庫 387
18.3.1 理解swc檔案 387
18.3.2 rsl的類型 387
18.3.3 在flex應用程式中使用rsl 388
18.4 小結 390
第19章 架構設計模式 391
19.1 flex驅動的設計模式 392
19.1.1 模型-視圖-控制器模式 392
19.1.2 開發自己的架構 393
19.2 微架構簡介 398
19.2.1 微架構的簡單定義 398
19.2.2 使用微架構的原因 399
19.2.3 第一代微架構 399
19.2.4 第二代微架構 400
19.2.5 控制反轉和依賴注入 401
19.3 使用robotlegs框架 402
19.3.1 使用robotlegs注入依賴 402
19.3.2 使用robotlegs映射實用工具來配置依賴注入 403
19.4 使用robotlegs mvcs創建應用程式 408
19.4.1 設定robotlegs項目 409
19.4.2 使用context類引導應用程式 409
19.4.3 對視圖使用中介 411
19.4.4 使用robotlegs命令進行控制 416
19.4.5 服務是通往外界的大門 417
19.4.6 使用模型來管理數據和狀態 420
19.5 小結 422
第Ⅲ部分 高級套用
第20章 自定義體驗 425
20.1 用戶體驗設計的原則 425
20.1.1 圍繞用戶故事進行構建 425
20.1.2 考慮上下文 427
20.1.3 vibe模型 429
20.2 視覺吸引力 429
20.2.1 創建並使用主題 430
20.2.2 使用css設定flex 4應用程式的樣式 433
20.3 互動式體驗 437
20.3.1 使用fxg和flash catalyst cs5進行聲明性設計 437
20.3.2 使用效果增強用戶體驗 439
20.4 業務最佳化 441
20.4.1 使用最佳實踐改進體驗 441
20.4.2 通過單元測試改進用戶體驗 442
20.4.3 概要分析flex 4中的應用程式 443
20.5 可擴展性 444
20.5.1 可擴展性與用戶體驗的間接關係 444
20.5.2 可擴展性與用戶體驗的直接關係 445
20.5.3 編寫乾淨的代碼以實現易用性 445
20.6 小結 447
第21章 使用效果 449
21.1 效果的含義 449
21.1.1 可用的效果 449
21.1.2 合成效果 451
21.2 使用效果 451
21.2.1 創建效果的方式 451
21.2.2 由事件觸發的效果 451
21.2.3 以編程方式套用效果 453
21.2.4 使用狀態過渡來觸發效果 457
21.3 創建合成效果 458
21.3.1 串列效果 458
21.3.2 並行效果 459
21.3.3 組合合成效果 460
21.4 探索效果 461
21.4.1 animate效果 462
21.4.2 使用animatefilter設定濾鏡的動畫 469
21.4.3 使用animatetransition shader設定像素著色器動畫 472
21.4.4 自定義效果緩動 476
21.4.5 在播放動畫時顯示文本 478
21.4.6 創建聲音效果 480
21.5 小結 481
第22章 拖放 483
22.1 拖放過程 483
22.2 在flex組件中實現拖放 486
22.2.1 內置支持拖放的組件 486
22.2.2 在列表中啟用拖放 486
22.2.3 移動與複製 488
22.2.4 使用拖放實現用戶控制的排序 489
22.2.5 多項拖放 490
22.2.6 雙向拖放 491
22.3 使用dragmanager 493
22.3.1 dragmanager的屬性和方法 493
22.3.2 接受或拒絕放置 494
22.3.3 套用自定義放置方式 496
22.4 為非列表組件添加拖放行為 499
22.4.1 設定示例 499
22.4.2 啟動拖動 500
22.4.3 使用自定義的拖動代理 502
22.4.4 處理放置 504
22.5 自定義拖放體驗 508
22.5.1 修改拖動代理圖示 508
22.5.2 用於拖放的list組件換膚 509
22.5.3 在spark和halo之間混合拖放 510
22.6 小結 511
第23章 探索flex圖表 513
23.1 圖表簡介 513
23.1.1 圖表的構成 514
23.1.2 圖表類型簡介 514
23.2 準備系列和數據 515
23.3 創建圖表 516
23.3.1 調用圖表 516
23.3.2 添加圖例 517
23.3.3 改變圖表類型 518
23.3.4 過濾圖表數據 520
23.4 堆疊圖表 521
23.5 探索圖表類型 522
23.5.1 面積圖 522
23.5.2 條形圖和柱狀圖 523
23.5.3 折線圖 525
23.5.4 氣泡圖 526
23.5.5 燭台圖和hloc圖 528
23.5.6 餅圖 530
23.5.7 散點圖 533
23.6 自定義圖表 535
23.6.1 系列筆觸 535
23.6.2 系列填充 536
23.7 小結 538
第24章 調試與測試 539
24.1 調試 539
24.1.1 安裝flash debug player 540
24.1.2 使用trace()函式 540
24.1.3 使用flash builder調試器 542
24.1.4 監視網路活動 546
24.2 flex概要分析器 547
24.3 使用自動化工具測試應用程式 549
24.3.1 單元測試 550
24.3.2 功能測試 555
24.4 小結 557
第25章 項目收尾 559
25.1 自定義html包裝器 559
25.1.1 包裝器檔案 560
25.1.2 html模板 560
25.1.3 swfobject 2 561
25.2 部署 563
25.2.1 創建生產版本 564
25.2.2 放置客戶端檔案 565
25.2.3 放置伺服器端檔案 565
25.2.4 測試應用程式 565
25.3 小結 566