成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Flex數據綁定中常見的誤用和錯誤

開發 后端
Flex數據綁定常見的誤用和錯誤,數據綁定會減緩程序的初始化,并且當開發者不是完全理解數據綁定的機制是如何工作的話,會引起一些開發者意想不到的問題。

本文和大家重點討論一下Flex數據綁定陷阱:常見的誤用和錯誤,當構建Flex或者AdobeAIR程序時,將一個對象的值自動的傳遞給另一個對象這種處理是Flex數據綁定最常用并最有用的特征之一。

Flex數據綁定陷阱:常見的誤用和錯誤

當構建Flex或者AdobeAIR程序時,將一個對象的值自動的傳遞給另一個對象這種處理是Flex數據綁定最常用并最有用的特征之一。
盡管如此,同時Flex數據綁定會減緩程序的初始化,并且當開發者不是完全理解Flex數據綁定的機制是如何工作的話,會引起一些開發者意想不到的問題。
最好的解決方法及是確保你正確的使用了它并且在只有需要它的時候才使用它。在這篇文章中,我整理了十條開發者在構建應用使用Flex數據綁定時常見的陷阱和錯誤。

第一條:難以發現的無聲錯誤

這有些綁定操作似乎已經工作,但是你最后卻沮喪的發現沒有并且無從下手修改的例子。
在綁定表達式或者在綁定框架里調用綁定方法時拋出的異常和錯誤,只會默默的捕獲。因此你將在FlashPlayer調試版本中看不到任何運行時錯誤。不僅綁定沒有工作,
而且沒有任何錯誤顯示。為什么這些錯誤被無聲捕獲?

代碼實現綁定機制,在綁定發生前需要幾個先決條件。綁定機制會吞噬掉任何錯誤以防止在運行時拋出運行時異常。
如果你不希望在你的程序中看到這些可能出現的意外錯誤,這是一個很好的事情。

思考下下面的簡單綁定例子:

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <s:Applicationxmlns:fxs:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009" 
  3. xmlns:s="library://ns.adobe.com/flex/spark" 
  4. xmlns:mx="library://ns.adobe.com/flex/mx" 
  5. minWidth="1024"minHeight="768"  
  6. preinitialize="handlePreinitialize()"> 
  7.  
  8. <fx:Script> 
  9. <![CDATA[  
  10. [Bindable]  
  11. privatevarxml:XML=  
  12. <users>  
  13. <user>  
  14. <name>EladElrom</name>  
  15. <address>1WallStreet</address>  
  16. </user>  
  17. </users>;  
  18.  
  19. protectedfunctionhandlePreinitialize():void  
  20. {  
  21. xml=null;  
  22. //BindingManager.debugBinding("label.text");  
  23. }  
  24. ]]> 
  25. </fx:Script> 
  26.  
  27. <s:Labelids:Labelid="label"text="{xml.user.name}"/> 
  28.  
  29. </s:Application> 
  30.  

 

我已經添加了xml變量綁定到Label組件。這些代碼會運行的很好;但是,我在組件預初始化時將xml變量設置為null。
這個事件將在組件初始化序列開始之前被派發,此時Label組件還沒有被設置。這個xml變量被設置為null,因此沒有name屬性在xml對象上。
如果你運行這個程序,你會發現綁定沒有發生也沒有提示任何錯誤。

調試綁定

雖然錯誤被無聲的捕獲,你仍然有辦法可以找出是怎么回事。
使用BindingManager.as和Binding.as來進行調試并不容易,因為如果你沒有下載完整的Flexsdk的話,Flex數據綁定類是沒有的。
相反,你可以設置一個斷點并跟蹤相關的綁定對象來找出問題所在。在這種情況下,你會發現xml對象的值被設置為null,這就是為什么綁定為什么失敗的原因(看圖1)。


另一種方法更加直觀,是使用BindingManager類的debugBinding方法。
你設置你想觀察的組件和屬性,然后你就可以看到被捕獲的錯誤。

在上面的示例代碼中,我給下面的這行代碼加了注釋:BindingManager.debugBinding("label.text");
把這行的注釋去掉并在debug模式下運行它;你將在控制臺看到綁定錯誤(見圖2)

圖2.控制臺輸出的綁定錯誤

 

看一下Binding.as和BindingManager.as類的代碼。代碼中含有許多的try...catch表達式來確保形成有效綁定的條件。
以下有一些在綁定時可能拋出的錯誤類型:

◆Error#1006:Callattemptedonanobjectthatisnotafunction.
◆Error#1009:Nullhasnoproperties.
◆Error#1010:Undefinedhasnoproperties.
◆Error#1055:Hasnoproperties.
◆Error#1069:Property-notfoundon-andthereisnodefaultvalue

◆錯誤#1006:試圖調用的對象不是函數。
◆錯誤#1009:空沒有屬性。
◆錯誤#1010:未定義沒有屬性。
◆錯誤#1055:沒有屬性。
◆錯誤#1069:屬性-找不到-并且沒有默認值

如果任何這些錯誤發生,綁定對象將默默捕獲他們并不再實現Flex數據綁定。你可以使用綁定管理的調試選項來看到這些錯誤。
綁定管理除了捕獲這些錯誤之外還捕獲其他的錯誤。

【編輯推薦】

  1. 解析Flex4的十大變化
  2. 在Flex中使用樣式的五大方法
  3. 解析對AdobeFlex的十大誤解
  4. FlexBuilder3.0與Eclipse3.4的完美結合
  5. 學習Flex時必須要知道的10件事情
責任編輯:佚名 來源: csdn.net
相關推薦

2019-05-31 15:10:33

SQL數據庫MySQL

2024-01-06 08:16:19

init?函數數據開發者

2010-07-28 13:24:20

Flex數據綁定

2010-08-12 10:56:17

Flex數據綁定

2022-04-27 22:07:32

SQL數據庫分頁查詢

2010-08-10 10:56:39

2017-06-07 15:37:51

MySQLSQL性能優化

2011-07-29 13:17:35

HTML 5

2019-06-21 10:13:26

JavaScript錯誤開發

2010-07-28 13:31:10

Flex數據綁定

2010-07-28 13:11:13

Flex數據綁定

2009-08-27 11:12:04

C# foreach

2017-10-20 12:18:02

HTML5代碼header

2022-03-17 08:34:47

TypeScript項目類型

2010-07-28 13:40:44

Flex數據綁定

2011-04-02 10:47:51

2010-04-19 13:56:19

Oracle數據庫服務

2010-07-30 09:08:21

Flex數據綁定

2010-08-12 11:34:15

Flex數據綁定

2010-08-05 15:06:19

Flex數據綁定
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠爱视频 | 中文字幕一区二区三区乱码在线 | 中文字幕在线网 | 中文字幕韩在线第一页 | 精品国产一区二区三区久久久蜜月 | 国产精品久久9 | 三级视频在线观看 | 成人h动漫亚洲一区二区 | 人人干视频在线 | 爱操av| 成人午夜免费视频 | 丁香六月激情 | 久草综合在线视频 | 久久大| 成人黄色在线 | 国产精品久久 | 99精品视频在线观看 | 国产高清免费在线 | 国产日韩欧美精品 | 黄色三级毛片 | 亚洲在线一区 | 久久久久久久网 | 国产精品99 | 天天夜夜操 | 热re99久久精品国99热观看 | 日韩欧美三级电影在线观看 | 日韩一区二区免费视频 | 亚洲久草视频 | h片在线观看免费 | 精品熟人一区二区三区四区 | 精品免费国产一区二区三区四区 | 精品国产欧美一区二区 | 日韩午夜 | 日韩一区二区在线视频 | 一区二区免费 | 在线2区 | 成人免费在线播放视频 | 日韩中文在线观看 | 久久久久久久久蜜桃 | 91在线看 | 国产欧美久久精品 |