温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么将对象用于Flex数据绑定

发布时间:2021-12-14 13:43:12 来源:亿速云 阅读:128 作者:小新 栏目:编程语言

这篇文章主要为大家展示了“怎么将对象用于Flex数据绑定”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么将对象用于Flex数据绑定”这篇文章吧。

将对象用于Flex数据绑定

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

绑定到对象

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

packagemyComponents  {  //binding/myComponents/NonBindableObject.as  //Makenoclasspropertiesbindable.  publicclassNonBindableObjectextendsObject{  publicfunctionNonBindableObject(){  super();  }  publicvarstringProp:String="Stringproperty";  publicvarintProp:int=52;  }  }

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

<?xmlversionxmlversion="1.0"?>  <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initObj();">  <![CDATA[  importmyComponents.NonBindableObject;  [Bindable]  publicvarmyObj:NonBindableObject=newNonBindableObject();  [Bindable]  publicvaranotherObj:NonBindableObject=  newNonBindableObject();  publicfunctioninitObj():void{  anotherObj.stringProp='anotherObject';  anotherObj.intProp=8;  }  ]]>  <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.stringProp" click="myObj.stringProp='newstring';"/>  <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.intProp" click="myObj.intProp=10;"/>  <mx:Buttonlabelmx:Buttonlabel="ChangemyObj" click="myObj=anotherObj;"/>

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

绑定到对象的属性

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

packagemyComponents  {  //binding/myComponents/BindableObject.as  //Makeallclasspropertiesbindable.  [Bindable]  publicclassBindableObjectextendsObject{  publicfunctionBindableObject(){  super();  }  publicvarstringProp:String="Stringproperty";  publicvarintProp:int=52;  }  }

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

<?xmlversionxmlversion="1.0"?>  <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initObj();">  <![CDATA[  importmyComponents.BindableObject;  [Bindable]  publicvarmyObj:BindableObject=newBindableObject();  [Bindable]  publicvaranotherObj:BindableObject=  newBindableObject();  publicfunctioninitObj():void{  anotherObj.stringProp='anotherObject';  anotherObj.intProp=8;  }  ]]>  <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.stringProp" click="myObj.stringProp='newstring';"/>  <mx:Buttonlabelmx:Buttonlabel="ChangemyObj.intProp" click="myObj.intProp=10;"/>  <mx:Buttonlabelmx:Buttonlabel="ChangemyObj" click="myObj=anotherObj;"/>

以上是“怎么将对象用于Flex数据绑定”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI