flex
效能
改善效能
避免多層嵌套容器
一條好經驗是避免容器的嵌套超過三層
用 spacer 對象來填充不需要的空白
絕對位置和縮放
每個容器及其子物件大小和位置的計算會佔用大量資源
對象位置固定編碼
使用 Canvas 容器,其它類型的容器(如 Vbox)無法使用絕對位置
將對象寬度和高度固定編碼
可減輕相對布局管理器的處理負荷,從而加速容器和控制項的建立
避免的常見容器冗餘
<mx:Panel> 標籤中的 VBox 容器
<mx:Application> 標籤中的 VBox
容器作為 MXML 組件的頂層標籤,能不用時可以捨棄
MXML 組件外包上不必要的 VBox 容器來設定某些樣式,可以在組件上設定樣式
重新評價對容器的選擇
改善效能感受
延遲執行個體化
在可以不必一個螢幕顯示時可以使用
Flex 中的導航條容器(ViewStack、Accordin、TabNavigator)中內建了延遲實
例化,預設延遲執行個體化
creationPolicy="auto,all,none"
漸進式布局
需要一個螢幕顯示,但重繪有效率低時
使用運行時樣式得到良好效能(不宜多用)
注意:第一次最好不要使用setStyle() 方法
樣式使用
<mx:Style> 塊中(作為 MXML 標籤的一個顯式屬性)
外部 CSS 樣式表,(全域樣式)
資料服務
flash 安全沙箱
由於 Flash Player 安全沙箱的存在,對 web 服務的請求只能到 載入 SWF 檔案
的同一個域。
使用代理(不在同一主機或域)
useProxy="true"屬性直接調用服務。
不使用代理(在同一主機或域)
useProxy="false"屬性直接調用服務。終端服務必須有 crossdomain.xml 檔案。
兩種效能最好的發送資料方法是使用 HTTPService 的 XML 和使用 AMF 的
RemoteObject。
Web 服務代理 <mx:WebService>
遠程對象代理<mx:RemoteObject>
HTTP 服務<mx:HTTPService>
實施
先行編譯 MXML 頁
先行編譯應用程式還能使開發人員分發不帶源碼的應用程式。
flex
1.在 mx.swc 看原類中的一些函數
2. cellRenderer,labelFunction
查看 CellRenderer API
3.Effect 使用 改變顯示效果<mx:Effect>
mouseDownEffect
mouseOverEffect
mouseUpEffect
moveEffect
resizeEffect
showEffect
mouseOutEffect
hideEffect
3.其它技巧看 flexbook
JavaScript
1.直接使用 getUrl 使用JavaScript
開啟全屏視窗
getUrl(javascript:void(window.open
('test.mxml','newwindow','fullscreen=yes,type=fullWindow,scrollbars=no,
directories=no,status=no,menubar=no')));
關閉當前視窗(無提示關閉)
getUrl(javascript:window.opener = 'dsg';window.close(););
2.在產生的html 檔案中加入 JavaScript ,通過 getUrl使用 JavaScript