帮助总结:
数据绑定有三种方式:
<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]标签.
数据绑定有三种方式:
<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]标签.