`
wangcheng
  • 浏览: 1464927 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

Flex2使用BindingUtils动态绑定

阅读更多

关于Flex2绑定的例子,大都是使用[Bindable]注释,或在mx视图组件中使用大括号{}来实现的。基本都是象下面的代码

xml 代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
  3.        
  4.     <mx:Script>  
  5.         [CDATA[   
  6.                
  7.             [Bindable]   
  8.             private var myText : String;   
  9.                
  10.         ]]   
  11.     </mx:Script>  
  12.        
  13.     <mx:TextInput id="textInput" x="10" y="10" change="myText = textInput.text + '!'"/>  
  14.     <mx:Label id="textLabel" x="10" y="40" text="{textInput.text}" width="160" height="20" fontWeight="bold" fontSize="12"/>  
  15.     <mx:Text x="10" y="68" text="{myText}" fontSize="12" fontWeight="bold" width="260"/>  
  16.        
  17. </mx:Application>  

但实际项目中,并非都是这种理想的情况,有时你的视图组件是动态生成的,有时你需要动态的改变绑定,有时你使用Sprite动态生成的图形也需要绑定数据,或者你就是喜欢完全使用AS来写。
这时就可以使用mx.binding.utils.BindingUtils类,改写上面的例子

xml 代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">  
  3.        
  4.     <mx:Script>  
  5.         [CDATA[   
  6.             import mx.controls.Label;   
  7.             import mx.controls.TextInput;   
  8.             import mx.binding.utils.BindingUtils;   
  9.                
  10.             private function init():void {   
  11.                 var textInput : TextInput = new TextInput();   
  12.                 var textLabel : Label = new Label();   
  13.                    
  14.                 myBox.addChild(textInput);   
  15.                 myBox.addChild(textLabel);   
  16.                    
  17.                 BindingUtils.bindProperty(textLabel, "text", textInput, "text");   
  18.             }   
  19.                
  20.         ]]   
  21.     </mx:Script>  
  22.        
  23.     <mx:VBox id="myBox" x="10" y="10"/>  
  24.        
  25. </mx:Application>  

这个例子将textInput.text与textLabel.text进行了绑定,而且没有使用[Bindable],也没有使用{}。
使用这种方法,可以将多个视图组件与一个Value Object对象(或叫DTO、Bean等)进行绑定,当VO对象改变时,所有绑定的视图都会改变。也可以在纯as文件中实现动态绑定了。

xml 代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">  
  3.        
  4.     <mx:Script>  
  5.         [CDATA[   
  6.             import model.UserVO;   
  7.             import mx.controls.Label;   
  8.             import mx.controls.TextInput;   
  9.             import mx.binding.utils.BindingUtils;   
  10.                
  11.             private var userVO : UserVO = new UserVO();   
  12.                
  13.             private function init():void {   
  14.                    
  15.                 for (var i : int = 0; i < 3; i++) {   
  16.                     var nameLabel : Label = new Label();   
  17.                     var emailLabel : Label = new Label();   
  18.                        
  19.                     myBox.addChild(nameLabel);   
  20.                     myBox.addChild(emailLabel);   
  21.                        
  22.                     BindingUtils.bindProperty(nameLabel, "text", userVO, "name");   
  23.                     BindingUtils.bindProperty(emailLabel, "text", userVO, "email");   
  24.                 }   
  25.             }   
  26.                
  27.         ]]   
  28.     </mx:Script>  
  29.        
  30.     <mx:HBox x="10" y="10" width="234">  
  31.         <mx:TextInput id="nameInput" width="113" change="userVO.name = nameInput.text"/>  
  32.         <mx:TextInput id="emailInput" width="107" change="userVO.email = emailInput.text"/>  
  33.     </mx:HBox>  
  34.     <mx:VBox id="myBox" x="10" y="38" width="234" height="175"/>  
  35.        
  36. </mx:Application>  
  1. package model   
  2. {   
  3.     [Bindable]   
  4.     public class UserVO   
  5.     {   
  6.         public var name: String;   
  7.            
  8.         public var email: String;   
  9.            
  10.         public var online: Boolean = false;   
  11.     }   
  12. }  
分享到:
评论

相关推荐

    Flex 动态绑定BindingUtils.bindProperty

    `BindingUtils.bindProperty`是Adobe Flex中用于实现这种动态绑定的关键方法。这个方法允许开发者在运行时创建数据绑定,而无需在MXML中硬编码。 `BindingUtils.bindProperty`方法接收四个参数: 1. `site`: 这是...

    flex页面跳转及数据绑定

    4. **BindingUtils动态绑定**:在ActionScript代码中,可以使用BindingUtils类的bindProperty或bindMethod方法进行动态绑定。这种方式提供了更大的灵活性,可以在运行时创建绑定。 总的来说,Flex页面跳转和数据...

    FLEX数据绑定四种方式

    本文将详细介绍Flex中数据绑定的四种主要方式:“{}”绑定表达式、[Bindable]绑定符号、`&lt;mx:Binding&gt;`标签以及BindingUtils动态绑定。 #### 二、“{}”绑定表达式 **简介** “{}”绑定表达式是一种最直接和简单的...

    Flex Bind数据绑定实例代码

    Flex Bind数据绑定是Adobe Flex应用程序开发中的核心特性,它允许开发者在用户界面组件和应用程序模型之间建立动态连接,实现数据的自动同步。这种强大的功能极大地简化了编程逻辑,特别是处理用户交互和数据更新时...

    Flex数据绑定专题

    3. **ActionScript中的`BindingUtils`方法**:这种方式允许在运行时动态地创建数据绑定,适用于需要根据程序运行状态动态调整绑定逻辑的情况。例如: ```actionscript BindingUtils.bindProperty(myText, "text", ...

    Flex高级数据绑定实例(界面语言切换)

    本示例通过一个具体的代码片段来展示如何使用Flex中的高级数据绑定技术来实现这一功能。该示例不仅涵盖了基本的数据绑定原理,还涉及到了模型与视图之间的交互、事件监听等高级主题。 #### 核心概念解析 1. **模型...

    flex3 数据绑定 总结

    在 ActionScript 中,我们可以使用 `BindingUtils` 类来创建数据绑定。这在需要更复杂的逻辑或者在运行时动态创建绑定时特别有用。 2.1 在 MXML 中与在 ACTIONSCRIPT 中定义数据绑定的区别 在 MXML 中,数据绑定...

    flex数据绑定

    数据绑定是Flex开发中的核心概念,它允许UI组件与应用程序数据之间建立动态的连接,使得当数据发生变化时,界面可以自动更新,反之亦然。这种特性极大地简化了开发者的工作,提高了代码的可维护性和效率。 标题...

    Flex4.5常见问题总结

    3. 在as中使用`BindingUtils`方法动态绑定属性。 绑定符`{}`不仅支持属性引用,还支持方法调用,如`{obj.text.toUpperCase()}`。数据绑定在源对象初始化或属性改变时触发,确保数据的一致性和实时更新。 #### 九、...

    Flex入门教程[汇编].pdf

    5. 实现数据绑定和验证,包括使用BindingUtils类、Validator类和Form类等。 6. 使用Flex Builder开发工具,包括创建新项目、设计用户界面、编写代码和调试应用程序等。 此外,本教程还涵盖了一些高级话题,例如: ...

    FLEX动态加载Model

    - `BindingUtils`类提供了一些静态方法,如`bindProperty()`,用于建立数据绑定。 4. **优化策略** - 为了提高性能,可以使用缓存机制,将已经加载过的Model存储起来,下次需要时直接复用,避免重复加载。 - ...

    flex学习心得

    3. 在ActionScript中使用`BindingUtils`类来绑定属性。 此外,数据绑定符`{}`可以直接引用属性或方法,如`{obj.text.toUpperCase()}`。而`[]`符号则表示属性的变化会触发数据绑定事件。 #### 十三、绑定事件触发 ...

    Flex问题解决大全

    Flex提供了三种数据绑定方式:MXML中的{}语法、`&lt;fx:Binding&gt;`标签和AS中的`BindingUtils`。数据绑定符{}可以引用属性或方法,且在编译时即开始绑定,而`BindingUtils`则在运行时进行绑定。当源属性变化时,数据绑定...

    flex4_读书笔记

    数据绑定是 Flex 中的核心概念,它允许属性间的动态关联,当源属性改变时,目的属性会自动更新。Flex 支持三种数据绑定方式: 1. MXML 中的 {} 括号绑定。 2. `&lt;fx:Binding&gt;` 标签。 3. AS3 中的 `BindingUtils`。 ...

    Flex 3 基础教程4)

    此外,Flex 还提供 `BindingUtils` 工具类,用于执行动态绑定操作,例如 `BindingUtils.bindProperty(source, sourceProp, target, targetProp)`,这允许在运行时创建绑定。 总之,数据绑定是 Flex 3 中的核心特性...

    数据绑定的三种方法.

    本文档详细介绍了Flex中的三种数据绑定方式:MXML中的大括号({})语法、MXML中的`&lt;mx:Binding&gt;`标记以及ActionScript中的BindingUtils系列方法。 #### 1. MXML中的大括号({})语法 最简单的一种数据绑定方式是...

    《Flex企业应用开发实战》学习笔记之Flex企业应用开发基础[收集].pdf

    3. 动态数据绑定,通过ActionScript的BindingUtils类在运行时创建绑定。 通过这些基本概念和技术,开发者可以构建复杂、交互性强的Flex企业应用,实现高效的数据管理和用户交互。了解并熟练掌握MXML和数据绑定,是...

Global site tag (gtag.js) - Google Analytics