关于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
分享到:
相关推荐
`BindingUtils.bindProperty`是Adobe Flex中用于实现这种动态绑定的关键方法。这个方法允许开发者在运行时创建数据绑定,而无需在MXML中硬编码。 `BindingUtils.bindProperty`方法接收四个参数: 1. `site`: 这是...
本文将详细介绍Flex中数据绑定的四种主要方式:“{}”绑定表达式、[Bindable]绑定符号、`<mx:Binding>`标签以及BindingUtils动态绑定。 #### 二、“{}”绑定表达式 **简介** “{}”绑定表达式是一种最直接和简单的...
4. **BindingUtils动态绑定**:在ActionScript代码中,可以使用BindingUtils类的bindProperty或bindMethod方法进行动态绑定。这种方式提供了更大的灵活性,可以在运行时创建绑定。 总的来说,Flex页面跳转和数据...
在上述代码中,`[Bindable]`元数据告诉编译器该变量可以被数据绑定使用。`{message}`表达式是数据绑定的语法,它将Label的text属性与message变量关联。 除了简单的属性绑定,Flex还支持双向数据绑定。这使得UI组件...
在 ActionScript 中,我们可以使用 `BindingUtils` 类来创建数据绑定。这在需要更复杂的逻辑或者在运行时动态创建绑定时特别有用。 2.1 在 MXML 中与在 ACTIONSCRIPT 中定义数据绑定的区别 在 MXML 中,数据绑定...
3. **ActionScript中的`BindingUtils`方法**:这种方式允许在运行时动态地创建数据绑定,适用于需要根据程序运行状态动态调整绑定逻辑的情况。例如: ```actionscript BindingUtils.bindProperty(myText, "text", ...
本示例通过一个具体的代码片段来展示如何使用Flex中的高级数据绑定技术来实现这一功能。该示例不仅涵盖了基本的数据绑定原理,还涉及到了模型与视图之间的交互、事件监听等高级主题。 #### 核心概念解析 1. **模型...
数据绑定是Flex开发中的核心概念,它允许UI组件与应用程序数据之间建立动态的连接,使得当数据发生变化时,界面可以自动更新,反之亦然。这种特性极大地简化了开发者的工作,提高了代码的可维护性和效率。 标题...
- `BindingUtils`类提供了一些静态方法,如`bindProperty()`,用于建立数据绑定。 4. **优化策略** - 为了提高性能,可以使用缓存机制,将已经加载过的Model存储起来,下次需要时直接复用,避免重复加载。 - ...
3. 在as中使用`BindingUtils`方法动态绑定属性。 绑定符`{}`不仅支持属性引用,还支持方法调用,如`{obj.text.toUpperCase()}`。数据绑定在源对象初始化或属性改变时触发,确保数据的一致性和实时更新。 #### 九、...
5. 实现数据绑定和验证,包括使用BindingUtils类、Validator类和Form类等。 6. 使用Flex Builder开发工具,包括创建新项目、设计用户界面、编写代码和调试应用程序等。 此外,本教程还涵盖了一些高级话题,例如: ...
Flex提供了三种数据绑定方式:MXML中的{}语法、`<fx:Binding>`标签和AS中的`BindingUtils`。数据绑定符{}可以引用属性或方法,且在编译时即开始绑定,而`BindingUtils`则在运行时进行绑定。当源属性变化时,数据绑定...
3. 在ActionScript中使用`BindingUtils`类来绑定属性。 此外,数据绑定符`{}`可以直接引用属性或方法,如`{obj.text.toUpperCase()}`。而`[]`符号则表示属性的变化会触发数据绑定事件。 #### 十三、绑定事件触发 ...
此外,Flex 还提供 `BindingUtils` 工具类,用于执行动态绑定操作,例如 `BindingUtils.bindProperty(source, sourceProp, target, targetProp)`,这允许在运行时创建绑定。 总之,数据绑定是 Flex 3 中的核心特性...
3. 动态数据绑定,通过ActionScript的BindingUtils类在运行时创建绑定。 通过这些基本概念和技术,开发者可以构建复杂、交互性强的Flex企业应用,实现高效的数据管理和用户交互。了解并熟练掌握MXML和数据绑定,是...
本文档详细介绍了Flex中的三种数据绑定方式:MXML中的大括号({})语法、MXML中的`<mx:Binding>`标记以及ActionScript中的BindingUtils系列方法。 #### 1. MXML中的大括号({})语法 最简单的一种数据绑定方式是...
数据绑定是 Flex 中的核心概念,它允许属性间的动态关联,当源属性改变时,目的属性会自动更新。Flex 支持三种数据绑定方式: 1. MXML 中的 {} 括号绑定。 2. `<fx:Binding>` 标签。 3. AS3 中的 `BindingUtils`。 ...