技术分享 在ActionScript中如何定义Flex数据绑定

你对在ActionScript 中定义Flex数据绑定是否了解,这里和大家分享一下,通过使用bindProperty() 方法可以让我们创建一个到用变量实现的属性的数据绑定,或者用bindSetter()方法创建一个到用方法实现的属性的Flex数据绑定。

站在用户的角度思考问题,与客户深入沟通,找到裕华网站设计与裕华网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖裕华地区。

在ActionScript 中定义Flex数据绑定

通过使用mx.binding.utils.BindingUtils能够在ActionScript中定义绑定。这个类定义了几个静态方法,通过使用bindProperty() 方法可以让我们创建一个到用变量实现的属性的数据绑定,或者用bindSetter()方法创建一个到用方法实现的属性的Flex数据绑定。

(1)在MXML 与在ActionScript 定义Flex数据绑定的区别

编译期在MXML 中定义Flex数据绑定与在运行期在ActionScript 中定义Flex数据绑定有一些不同之处:
◆不能在由bindProperty()或者bindSetter()方法定义绑定表达式中引入ActionScript 代码。相反,使用bindSetter()方法可以指定一个在绑定发生时调用的
方法。
◆ 不能在由ActionScript 中定义的绑定表达式中引入E4X 表达式。
◆ 在由the bindProperty()或者bindSetter()方法定义的Flex数据绑定表达式的属性链中不能引入函数或者数组元素。更多信息见Working with bindable property chains.
◆同运行时使用bindProperty()或者bindSetter()定义的Flex数据绑定相比,MXML 编译器有更好的警告和错误检查支持。

(2)范例:在ActionScript 中定义Flex数据绑定

下面的例子是用bindSetter()建立了一个Flex数据绑定。bindSetter()方法的参数设置如下:
◆ 源(source) 对象
◆ 源(source) 属性名
◆ 当源(source)属性变化被调用的方法。
下面的范例中,当向TextInput 控件中输入文本时,文本会被转换为大写形式并拷贝给TextArea
控件:

 
 
 
  1.  
  2.  
  3.  
  4.  
  5. import mx.binding.utils.*;  
  6. import mx.events.FlexEvent;  
  7. // Method called when myTI.text changes.  
  8. public function updateMyString(val:String):void {  
  9. myTA.text = val.toUpperCase();  
  10. }  
  11.  
  12. public function mySetterBinding(event:FlexEvent):void {  
  13. var watcherSetter:ChangeWatcher =  
  14. BindingUtils.bindSetter(updateMyString, myTI, "text");  
  15. }  
  16. ]]> 
  17.  
  18.  
  19. text="Hello Setter" /> 
  20. initialize="mySetterBinding(event);"/> 
  21.  

 (3)定义绑定观察者 (watchers)

Flex 有个mx.binding.utils.ChangeWatcher 类,可以用这个类来定义一个Flex数据绑定观察者。通常,Flex数据绑定观察者在绑定发生时激活一个事件监听器。可按照下面的范例使用
ChangeWatcher 的watch()即可建立一个Flex数据绑定观察者:

 
 
 
  1.  
  2.  
  3. initialize="initWatcher();"> 
  4.  
  5. import mx.binding.utils.*;  
  6. import mx.events.FlexEvent;  
  7. import mx.events.PropertyChangeEvent;  
  8. public var myWatcher:ChangeWatcher;  
  9. // Define binding watcher.  
  10. public function initWatcher():void {  
  11. // Define a watcher for the text binding.  
  12. ChangeWatcher.watch(textarea, "text", watcherListener);  
  13. }  
  14. // Event listener when binding occurs.  
  15. public function watcherListener(event:Event):void {  
  16. myTA1.text="binding occurred";  
  17. // Use myWatcher.unwatch() to remove the watcher.  
  18. }  
  19. ]]> 
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  

上面的范例中,为Flex数据绑定观察者定义了事件监听器,在这个事件监听器中使用了单个参数来包含事件对象。事件对象的数据类型由被观察的属性所决定。每个可绑定的属性会不同的
事件类型以及相关的事件对象。有关确定事件类型的更多信息见“使用Bindable 元数据标记”。

【编辑推荐】

  1. Adobe Flex提供三种方法指定Flex数据绑定
  2. 术语汇编 Flex数据绑定概述
  3. Flex数据绑定的四种方式
  4. 解析Flex全屏模式设置方法
  5. Flex内存泄露解决方法和内存释放优化原则

当前标题:技术分享 在ActionScript中如何定义Flex数据绑定
URL链接:http://www.shufengxianlan.com/qtweb/news30/86630.html

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

广告

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