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

Flex數據綁定中難以發現的無聲錯誤

開發 后端
本文介紹一下Flex數據綁定陷阱中常見錯誤,當開發者不是完全理解Flex數據綁定的機制是如何工作的話,會引起一些開發者意想不到的問題。

本文和大家重點討論一下Flex數據綁定陷阱中常見錯誤,數據綁定會減緩程序的初始化,并且當開發者不是完全理解數據綁定的機制是如何工作的話,會引起一些開發者意想不到的問題。

Flex數據綁定陷阱中常見錯誤

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

Flex數據綁定陷阱第一條:難以發現的無聲錯誤

這有些綁定操作似乎已經工作,但是你最后卻沮喪的發現沒有并且無從下手修改的例子。

在綁定表達式或者在綁定框架里調用綁定方法時拋出的異常和錯誤,只會默默的捕獲。因此你將在Flash Player調試版本中看不到任何運行時錯誤。不僅綁定沒有工作,而且沒有任何錯誤顯示。為什么這些錯誤被無聲捕獲?代碼實現綁定機制,在綁定發生前需要幾個先決條件。綁定機制會吞噬掉任何錯誤以防止在運行時拋出運行時異常。如果你不希望在你的程序中看到這些可能出現的意外錯誤,這是一個很好的事情。

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

  1. <?xml version="1.0" encoding="utf-8"?>    
  2.  
  3. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    
  4.  
  5.    xmlns:s="library://ns.adobe.com/flex/spark"    
  6.  
  7.    xmlns:mx="library://ns.adobe.com/flex/mx"    
  8.  
  9.    minWidth="1024" minHeight="768"                                        
  10.  
  11.    preinitialize="handlePreinitialize()">                            
  12.  
  13.  
  14.  
  15.    <fx:Script>    
  16.  
  17.       <![CDATA[    
  18.  
  19.          [Bindable]    
  20.  
  21.          private var xml:XML =     
  22.  
  23.          <users>    
  24.  
  25.             <user>    
  26.  
  27.                <name>EladElrom</name>    
  28.  
  29.                <address>1 Wall Street</address>    
  30.  
  31.             </user>    
  32.  
  33.          </users>;       
  34.  
  35.                                    
  36.  
  37.          protected function handlePreinitialize():void    
  38.  
  39.          {   
  40.             xml = null;    
  41.  
  42.             //BindingManager.debugBinding("label.text");    
  43.          }    
  44.  
  45.       ]]>    
  46.  
  47.    </fx:Script>                           
  48.  
  49.    <s:Label id="label" text="{xml.user.name}"/>    
  50. </s:Application> 
  51.  

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

調試Flex數據綁定

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

圖1. xml對象的值被設置為null

 

另一種方法更加直觀,是使用BindingManager類的debugBinding方法。你設置你想觀察的組件和屬性,然后你就可以看到被捕獲的錯誤。在上面的示例代碼中,我給下面的這行代碼加了注釋:
BindingManager.debugBinding("label.text");
把這行的注釋去掉并在debug模式下運行它;你將在控制臺看到綁定錯誤(見圖2)

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

 

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

    ◆ Error #1006: Call attempted on an object that is not a function.
    ◆ Error #1009: Null has no properties.       
    ◆ Error #1010: Undefined has no properties.       
    ◆ Error #1055: Has no properties.
    ◆ Error #1069: Property - not found on - and there is no default value
       
    ◆錯誤#1006:試圖調用的對象不是函數。
    ◆錯誤#1009:空沒有屬性。
    ◆錯誤#1010:未定義沒有屬性。
    ◆錯誤#1055:沒有屬性。
    ◆錯誤#1069:屬性 - 找不到 - 并且沒有默認值

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

【編輯推薦】

  1. Flex數據綁定技巧
  2. Flex2.0Beta1新功能出爐
  3. Flex數據綁定中常見的誤用和錯誤
  4. FlexBuilder3.0與Eclipse3.4的完美結合
  5. 剖析Flex DataGrid分頁控件的兩種分頁形式用法
責任編輯:佚名 來源: 136z.com
相關推薦

2010-08-12 10:56:17

Flex數據綁定

2010-07-27 13:13:33

Flex數據綁定

2010-07-28 13:31:10

Flex數據綁定

2010-07-28 13:11:13

Flex數據綁定

2010-07-30 10:45:08

Flex數據綁定

2010-07-28 13:40:44

Flex數據綁定

2010-07-30 09:08:21

Flex數據綁定

2010-08-12 11:34:15

Flex數據綁定

2010-08-05 15:06:19

Flex數據綁定

2010-07-30 09:16:24

Flex數據綁定

2010-08-10 10:56:39

2010-07-28 13:54:42

Flex數據綁定

2010-07-30 10:37:23

Flex數據綁定

2010-07-28 13:48:49

Flex數據綁定

2010-07-30 10:23:46

Flex數據綁定

2010-08-12 11:05:33

Flex數據綁定

2010-07-30 10:53:53

Flex數據綁定

2010-08-12 10:43:19

Flex數據綁定

2010-07-30 10:30:58

Flex數據綁定

2010-08-11 14:09:07

Flex3.0數據綁定
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品中文字幕中文字幕 | 国产99视频精品免费视频7 | 中文字幕国产在线 | 亚洲国产免费 | 日韩国产精品一区二区三区 | 在线观看日韩av | 日韩中文字幕高清 | 欧美日韩久久精品 | 国产日韩欧美在线 | 日本高清视频网站 | 亚洲色图综合网 | 国产精品久久久久久久 | 欧美在线a | aa级毛片毛片免费观看久 | 成人免费观看网站 | 国产jizz女人多喷水99 | 在线观看免费av网站 | 精产嫩模国品一二三区 | 91在线一区二区 | 亚洲精品视频在线 | 青青久草 | 精品一区av | 亚洲欧美在线一区 | 国产一级电影在线观看 | 狠狠爱综合网 | 国产精品成人免费 | 欧美一区二区在线观看 | 久热中文字幕 | 亚洲一二三区精品 | h片在线看 | 精产国产伦理一二三区 | av中文字幕在线 | 91中文字幕 | 一区二区三区国产 | 中文字幕在线一区二区三区 | 国产一级特黄真人毛片 | 爱操av| 久久99视频免费观看 | 成人免费视频网站在线看 | 成人精品一区二区 | 日韩在线视频观看 |