加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex 数据绑定(一)

发布时间:2020-12-15 05:03:23 所属栏目:百科 来源:网络整理
导读:?????? 数据绑定是将一个对象中的数据同另一个对象中的数据联系在一起的过程。数据绑定为在应用的不同层之间传递数据提供了便捷方法。数据绑定需要一个源属性,一个目的属性,以及用于表明何时将数据从源属性拷贝到目的属性的触发事件。当源属性变化时,对象

?????? 数据绑定是将一个对象中的数据同另一个对象中的数据联系在一起的过程。数据绑定为在应用的不同层之间传递数据提供了便捷方法。数据绑定需要一个源属性,一个目的属性,以及用于表明何时将数据从源属性拷贝到目的属性的触发事件。当源属性变化时,对象发出触发事件。?

???? Adobe Flex提供三种方法用于指定数据绑定:MXML中的大括号({})语法,MXML中的<mx:Binding>标记,以及ActionScript中的 BindingUtils 的系列方法。

???1? ?下面的例子使用大括号({})语法来展示一个Text控件,该控件的数据来自于TextInput控件Text属性:

 
 
  1. <?xml?version="1.0"?>?? ?
  2. ?
  3. <!--?binding/BasicBinding.mxml?-->?? ?
  4. ?
  5. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml">?? ?
  6. ?
  7. ????<mx:TextInput?id="myTI"?text="Enter?text?here"/>?? ?
  8. ?
  9. ????<mx:Text?id="myText"?text="{myTI.text}"/>?? ?
  10. ?
  11. </mx:Application>???

???? 大括号中所括的属性名就是绑定表达式中的源属性。当源属性的值放生变化时,Flex把源属性myTI.text的当前值拷贝到目的属性。

?????2??? 用<mx:Binding>标记作为大括号语法的替代方法。在使用<mx:Binding>时,要为<mx:Binding>标记提供一个源属性作为标记的source属性以及提供一个目的属性作为标记的destination属性。

?? 下面的例子使用<mx:Binding>标记定义了一个从TextInput控件到Text控件的数据绑定:?

 
 
  1. <?xml?version="1.0"?>?? ?
  2. ?
  3. <!--?binding/BasicBindingMXML.mxml?-->?? ?
  4. ?
  5. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml">?? ?
  6. ?
  7. ????<mx:TextInput?id="myTI"/>?? ?
  8. ?
  9. ????<mx:Text?id="myText"/>????? ?
  10. ?
  11. ????<mx:Binding?source="myTI.text"?destination="myText.text"/>?? ?
  12. ?
  13. </mx:Application>?? ?

同大括号语法相比,用<mx:Binding>标记能够将视图(用户界面)同模型完全分离。<mx:Binding>标记也能实现将多个源属性绑定到一个相同的 目的属性,这是因为能够定义多个具有相同的destination属性的<mx:Binding>标记。例子请参照“绑定多个源属性到一个目的属性”。?

???3? ?大括号语法和<mx:Binding>标记都能在编译期定义数据绑定,而使用 ActionScript代码则可以在运行期定义数据绑定,如下例所示:?

 
 
  1. <?xml?version="1.0"?>?? ?
  2. ?
  3. <!--?binding/BasicBindingAS.mxml?-->?? ?
  4. ?
  5. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml">?? ?
  6. ?
  7. ?????? ?
  8. ?
  9. ????<mx:Script>?? ?
  10. ?
  11. ??????<![CDATA[?? ?
  12. ?
  13. ????????import?mx.binding.utils.*;?? ?
  14. ?
  15. ?//?Define?data?binding.?? ?
  16. ?
  17. ????????public?function?initBindingHandler():void?{?? ?
  18. ?
  19. ????????????BindingUtils.bindProperty(myText,?"text",?myTI,?"text");?? ?
  20. ?
  21. ????????}?? ?
  22. ?
  23. ??????]]>?? ?
  24. ?</mx:Script>?? ?
  25. <mx:TextInput?id="myTI"/>?? ?
  26. <mx:Text?id="myText"?preinitialize="initBindingHandler();"/>?? ?
  27. ?
  28. </mx:Application>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读