首頁»Flash»Flex開發者需要知道的10件事

Flex開發者需要知道的10件事

來源:Web開發者 發布時間:2012-02-29 閱讀次數:

1. 再簡單的東西也是異步的

Flex是一個異步框架,因此我們絕對不能指望代碼調用后就能立刻執行。事實上,我們是無法預知方法的調用序列的。

2. 搞清楚Flex組件的樣式與屬性

Flex UI組件(按鈕、菜單等等)既有屬性(通過ActionScript語言指定)也有樣式(通過Flex框架指定)。搞清楚他們之間的區別是非常重要的,因為組件的某些可視化效果可以通過屬性指定,但另一些卻只能通過樣式設定。通過屬性指定:

button.width = 100;  
button.height = 50; 

通過樣式指定:

<mx:Style>
Button {  
   color: #cc0000;  
   textRollOverColor: #ccff00;  
   fontFamily: Trebuchet MS;  
}
</mx:Style> 
<mx:Button id="setupB" text="Click Me" click="onSetup()" />

3. Flex中的樣式與HTML中的不盡相同

可以使用標準的CSS樣式表來為Flex組件添加樣式,也可以在Flex應用中包含CSS樣式表。雖然標準CSS使用連字符(例如text-font)格式來定義樣式名稱,但是Flex使用駝峰式的命名格式(例如textFont)。這是因為連字符不能出現在XML的屬性中,所以不能用這樣的名字作為MXML標簽的屬性。

當然了,如果把樣式定義在外部的CSS文件中或者Style標簽中,也可以使用連字符格式的樣式名。此外,Flex還定義了很多HTML中不存在的CSS樣式。

4. 盡管看起來不同,但MXML和ActionScript本質上是一回事

在Flex中聲明的所有MXML標簽都會被Flex編譯器轉換為ActionScript代碼;當然了,也可以在MXML文件中嵌入內聯的ActionScript代碼。既可以使用MXML也可以使用ActionScript創建新組件。

5. 理解Flex的Code-behind模式

雖然MXML和ActionScript本質上是一樣的,但他們各司其職。一般來說,MXML負責顯示界面,而ActionScript用來完成功能。Code-behind用于解耦MXML和ActionScript,這樣設計師可以直接修改MXML而無需閱讀代碼,程序員則可以更好地組織和重用功能。

6. 理解Flex組件的生命周期

Flex通過狀態機機制定義了一套完美的生命周期模型,用于組件的創建、運行和銷毀,還定義了一些“入口”,開發者可以借此完成定制化的工作。沒有透徹理解組件的生命周期可能會導致錯誤的編程模型。

7. 理解Flash運行時所使用的“跑道”模型

理解Flash Player的渲染和代碼執行機制非常重要的。在執行了改變界面的指令時,Flash Player并不是立刻把你要的內容顯示在屏幕上,它根據一定的周期來刷新屏幕,而代碼的執行則是另一回事。這和Java正好相反,Java總是等待程序主動告訴它什么時候重繪屏幕。

8. 理解數據綁定與查看器(Watcher)

Flex提供了一種數據綁定機制。簡單地說,就是將一個源屬性綁定到一個目標屬性上,當源屬性發生變化時,目標屬性也會隨之變化。不僅僅可以綁定到屬性,還可以綁定到函數。甚至可以為某個屬性創建一個Watcher,當屬性變化時會獲得事件通知。

9. 數據封裝與松耦合非常重要

對于Flex和AIR項目來說,代碼組織與高層結構非常重要。有些人竟然在一個文件中編寫了1000多行代碼,這導致的問題就是牽一發而動全身。

10. 理解ActionScript中的弱引用與強引用

不管使用何種語言與開發環境,內存管理始終是一個重要的問題,ActionScript也不例外。如果不理解運行時環境的內存管理,那么很容易就會出現內存泄露與內存碎片問題。請閱讀這篇博文文章來深入了解ActionScript的垃圾收集機制。

來源:http://www.infoq.com

Flash開發者需要知道的10件事

QQ群:WEB開發者官方群(515171538),驗證消息:10000
微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
網友評論(共2條評論) 正在載入評論......
理智評論文明上網,拒絕惡意謾罵 發表評論 / 共2條評論
登錄會員中心
大发国际网址 玉山县| 西贡区| 靖州| 定边县| 汤阴县| 聂拉木县| 彭水| 香格里拉县| 丰镇市| 和顺县| 西吉县| 高雄县| 西平县| 铁岭县| 三亚市| 久治县| 三河市| 罗源县| 驻马店市| 岱山县| 莱州市| 宜宾市| 伊川县| 曲沃县| 南召县| 海安县| 安国市| 冷水江市| 顺义区| 隆德县| 密云县| 康平县| 长丰县| 绩溪县| 黄平县| 孙吴县| 介休市| 翁牛特旗| 正安县| 家居| 定结县| 黎川县| 麟游县| 衢州市| 漳平市| 林口县| 杂多县| 顺昌县| 太仓市| 沙田区| 兴海县| 阿拉尔市| 溧阳市| 惠东县| 赤水市| 航空| 谷城县| 东兴市| 孟连| 威远县| 陆川县| 文水县| 班戈县| 白朗县| 迁安市| 建湖县| 闸北区| 和平区| 藁城市| 盐亭县| 石家庄市| 昌宁县| 福鼎市| 尼勒克县| 裕民县| 友谊县| 左贡县| 介休市| 横峰县| 苗栗市| 沧源| 温州市| 蕲春县| 海阳市| 响水县| 和政县| 江永县| 宁阳县| 和林格尔县| 邻水| 乐平市| 双柏县| 宜城市| 盘锦市| 图木舒克市| 克什克腾旗| 栾城县| 江达县| 双鸭山市| 平山县| 方山县| 棋牌| 和静县| 额济纳旗| 河北区| 磐石市| 阿鲁科尔沁旗| 江都市| 灯塔市| 海淀区| 神木县| 云林县| 太康县| 惠水县| 阳城县| 杭州市| 南江县| 雅江县| 子长县| 云阳县| 清新县| 永康市| 肥乡县| 开平市| 怀安县| 昌乐县| 宜昌市| 综艺| 彭水| 正宁县| 扶余县| 巴青县| 鄂托克前旗| 和平县| 剑川县| 全椒县| 皮山县|