学习笔记如何将对象用于Flex数据绑定

本文和大家重点讨论一下如何将对象用于Flex数据绑定,当使用对象进行工作时,不得不考虑什么时候定义到这个对象的绑定?或者考虑什么时候定义一个到这个对象属性的绑定?

创新互联为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站设计、成都网站制作, 我们的网页设计师为您提供的解决方案。

将对象用于Flex数据绑定

当使用对象进行工作时,不得不考虑什么时候定义到这个对象的绑定?或者考虑什么时候定义一个到这个对象属性的绑定?

绑定到对象

当使一个对象成为Flex数据绑定表达式的源时,Flex数据绑定发生在这个对象被更新之时,或者这个对象的引用被更新之时,但不能发生在这个对象的单个(数据)域(feild)被更新之时。
下面的范例中,创建了Object类的子类,这个子类带有两个属性,stringProp和intProp,但没有使这两个属性成为可绑定属性:
 

 
 
 
  1. packagemyComponents  
  2. {  
  3. //binding/myComponents/NonBindableObject.as  
  4. //Makenoclasspropertiesbindable.  
  5. publicclassNonBindableObjectextendsObject{  
  6. publicfunctionNonBindableObject(){  
  7. super();  
  8. }  
  9. publicvarstringProp:String="Stringproperty";  
  10. publicvarintProp:int=52;  
  11. }  
  12. }  

因为这个类的两个属性不是可绑定属性,当它们被更新时Flex不会发出事件去触发Flex数据绑定。接下来在Flex应用中使用这个类,如下面的范例所示:
 

 
 
 
  1.  
  2.  
  3. creationComplete="initObj();"> 
  4.  
  5. importmyComponents.NonBindableObject;  
  6. [Bindable]  
  7. publicvarmyObj:NonBindableObject=newNonBindableObject();  
  8. [Bindable]  
  9. publicvaranotherObj:NonBindableObject=  
  10. newNonBindableObject();  
  11. publicfunctioninitObj():void{  
  12. anotherObj.stringProp='anotherObject';  
  13. anotherObj.intProp=8;  
  14. }  
  15. ]]> 
  16.  
  17. click="myObj.stringProp='newstring';"/> 
  18.  
  19. click="myObj.intProp=10;"/> 
  20.  
  21. click="myObj=anotherObj;"/> 
  22.  

 因为没有使NonBindableObject类的单个数据域(fields)成为可绑定属性,所以应用在两个Text控件的绑定在应用启动时以及在myObj被更新时才会被更新。在编译这个应用时,编译器会输出警告信息,提示Flex数据绑定机制不能检测stringProp和intProp属性的变化。

绑定到对象的属性

为了使对象的属性可绑定,要创建新的类定义,如下面的范例所示:
 

 
 
 
  1. packagemyComponents  
  2. {  
  3. //binding/myComponents/BindableObject.as  
  4. //Makeallclasspropertiesbindable.  
  5. [Bindable]  
  6. publicclassBindableObjectextendsObject{  
  7. publicfunctionBindableObject(){  
  8. super();  
  9. }  
  10. publicvarstringProp:String="Stringproperty";  
  11. publicvarintProp:int=52;  
  12. }  
  13. }  

通过在类定义之前放置[Bindable]元数据标记,就可以使得类中所有public变量、以及所有完全具备setter及getter的public属性成为可绑定的属性。接下来就可以使用stringProp和intProp属性作为Flex数据绑定的源,如下范例所示:

 
 
 
  1.  
  2.  
  3. creationComplete="initObj();"> 
  4.  
  5. importmyComponents.BindableObject;  
  6. [Bindable]  
  7. publicvarmyObj:BindableObject=newBindableObject();  
  8. [Bindable]  
  9. publicvaranotherObj:BindableObject=  
  10. newBindableObject();  
  11. publicfunctioninitObj():void{  
  12. anotherObj.stringProp='anotherObject';  
  13. anotherObj.intProp=8;  
  14. }  
  15. ]]> 
  16.  
  17. click="myObj.stringProp='newstring';"/> 
  18.  
  19. click="myObj.intProp=10;"/> 
  20.  
  21. click="myObj=anotherObj;"/> 

当前题目:学习笔记如何将对象用于Flex数据绑定
转载源于:http://www.zyruijie.cn/qtweb/news16/316.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联