`

Flex使用BindingUtils动态绑定

    博客分类:
  • AIR
阅读更多
关于Flex2绑定的例子,大都是使用[Bindable]注释,或在mx视图组件中使用大括号{}来实现的。基本都是象下面的代码
xml 代码

 
<?xml version="1.0" encoding="utf-8"?>  
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
         
      <mx:Script>  
          [CDATA[   
                 
              [Bindable]   
              private var myText : String;   
                 
          ]]   
      </mx:Script>  
         
      <mx:TextInput id="textInput" x="10" y="10" change="myText = textInput.text + '!'"/>  
      <mx:Label id="textLabel" x="10" y="40" text="{textInput.text}" width="160" height="20" fontWeight="bold" fontSize="12"/>  
      <mx:Text x="10" y="68" text="{myText}" fontSize="12" fontWeight="bold" width="260"/>  
         
  </mx:Application>  


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

<?xml version="1.0" encoding="utf-8"?>  
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">  
        
     <mx:Script>  
         [CDATA[   
             import mx.controls.Label;   
             import mx.controls.TextInput;   
             import mx.binding.utils.BindingUtils;   
                
             private function init():void {   
                 var textInput : TextInput = new TextInput();   
                 var textLabel : Label = new Label();   
                    
                 myBox.addChild(textInput);   
                 myBox.addChild(textLabel);   
                    
                 BindingUtils.bindProperty(textLabel, "text", textInput, "text");   
             }   
                
         ]]   
     </mx:Script>  
        
     <mx:VBox id="myBox" x="10" y="10"/>  
        
 </mx:Application>  

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

 
<?xml version="1.0" encoding="utf-8"?>  
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">  
         
      <mx:Script>  
          [CDATA[   
              import model.UserVO;   
              import mx.controls.Label;   
              import mx.controls.TextInput;   
              import mx.binding.utils.BindingUtils;   
                 
              private var userVO : UserVO = new UserVO();   
                 
              private function init():void {   
                     
                  for (var i : int = 0; i < 3; i++) {   
                      var nameLabel : Label = new Label();   
                      var emailLabel : Label = new Label();   
                         
                      myBox.addChild(nameLabel);   
                      myBox.addChild(emailLabel);   
                         
                      BindingUtils.bindProperty(nameLabel, "text", userVO, "name");   
                      BindingUtils.bindProperty(emailLabel, "text", userVO, "email");   
                  }   
              }   
                 
          ]]   
      </mx:Script>  
         
      <mx:HBox x="10" y="10" width="234">  
          <mx:TextInput id="nameInput" width="113" change="userVO.name = nameInput.text"/>  
          <mx:TextInput id="emailInput" width="107" change="userVO.email = emailInput.text"/>  
      </mx:HBox>  
      <mx:VBox id="myBox" x="10" y="38" width="234" height="175"/>  
         
  </mx:Application>  

  package model   
  {   
      [Bindable]   
      public class UserVO   
      {   
          public var name: String;   
             
          public var email: String;   
             
          public var online: Boolean = false;   
      }   
  }  




转自:http://wangcheng.iteye.com/blog/116865
分享到:
评论

相关推荐

    Flex 动态绑定BindingUtils.bindProperty

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

    FLEX数据绑定四种方式

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

    flex页面跳转及数据绑定

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

    Flex Bind数据绑定实例代码

    在上述代码中,`[Bindable]`元数据告诉编译器该变量可以被数据绑定使用。`{message}`表达式是数据绑定的语法,它将Label的text属性与message变量关联。 除了简单的属性绑定,Flex还支持双向数据绑定。这使得UI组件...

    flex3 数据绑定 总结

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

    Flex数据绑定专题

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

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

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

    flex数据绑定

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

    FLEX动态加载Model

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

    Flex4.5常见问题总结

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

    Flex入门教程[汇编].pdf

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

    Flex问题解决大全

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

    flex学习心得

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

    Flex 3 基础教程4)

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

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

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

    数据绑定的三种方法.

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

    flex4_读书笔记

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

Global site tag (gtag.js) - Google Analytics