数据绑定

帮助总结:
数据绑定有三种方式:
<1>.使用{}
如:
<mx:TextInput id="input" />
<mx:Text id="output" text="{input.text}"/>
大括号中所括的属性名就是绑定表达式中的源属性。
当源属性的值放生变化时,Flex 把源属性
input.text 的当前值拷贝到目的属性

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

如:
<mx:Binding source="input.text" destination="output.text"/>


与{}相比,使用<mx:Binding>能够与视图分开来,而且能够实现多个目标属性
与同一个源属性绑定.

<3>在ActionScript 中定义数据绑定
用mx.binding.utils.BindingUtils能够在ActionScript中定义绑定。
这个类定义了几个静态方法,通过使用bindProperty() 方法可以让我们创
建一个到用变量实现的属性的数据绑定,或者用bindSetter()方法创建一个
到用方法实现的属性的数据绑定.
如:用 bindSetter()方法来实现数据绑定
<mx:Script>
<!CDATA[[
import mx.binding.utils.*;
import mx.events.FlexEvent;
private var my
// the method to change the destination property
public function updateDesProperty(val:String):void
{
output.text=var.toUpperCase();
}
// Event listener to configure binding
public function setterBinding(event:FlexEvent):void
{
var myWatheChanger:ChangeWatcher=
BindingUtils.bindSetter(updateDesProperty,
input,"text");
}
]]
</mx:Script>
<mx:Label text="Bind Setter using setter method"/>
<mx:TextInput id="input" text="Hello Setter" />
<mx:TextArea id="output"
initialize="setterBinding(event);"/>
附加:理解下"setterBinding(event);"与"{setterBinding(event)}"
这两种方式的异同

有待深入了解~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


另记:The [Bindable] 元数据标是用来创建一个用做数据绑定源
如:
<mx:Script>
<!CDATA[

[Bindable]
public var maxSize:Number=15;

[Bindable]
public var minsize:Number=5;

]]>
</mx:Script>

<mx:Button click="{maxSize=20;minsize=6}"/>


19:20
补充:
在使用arrayCollection,XMLListCollection等数据源的时候注意一下自己选用的究竟是MXML还是ACTIONSCRIPT,MXML的数据源有自动更新功能,如<mx:XMLListCollection>当里面的数据改变的时候,目标属性会自动改变,但如果使用actionscript来定义数据源记得添加[Bindable]标签.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值