FLEX元标签_Bindable

[size=medium][color=darkblue]1 概述
[Bindable]是元标签,元标签不是语法的一部分,而是专门给编译器用的,是告诉编译器做某些事情。
[Bindable]的作用是:告诉 flex编译器给某些某些东西建立绑定关系

当你在没有添加事件设置的情形下使用 Bindable 标记时,propertyChange 是将被下发的默认事件类型。 因此,[Bindable] 标记等同于 Bindable(event="propertyChange")或[Bindable("propertyChange")]。

下面的代码

[Bindable]
public var testData:String;
由于没有设置事件名称,编译器将创建下列代码:
[Bindable(event="propertyChange")]

public function get testData():String
{
return this._1147269284testData;
}

public function set testData(value:String):void
{
var oldValue:Object = this._1147269284testData;

if (oldValue !== value) {
this._1147269284testData = value;
if (this.hasEventListener("propertyChange"))
this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent
(this, "testData", oldValue, value));
}

}

2 Bindable使用方式
2.1 在public class定义前
[Bindable]元数据标签绑定所有的作为变量定义的public属性,并且所有的public属性都定义有getter和setter方法。在这种情况下,[Bindable]没有参数,例如:
[Bindable]
public class TextAreaFontControl extends TextArea {

}
flex编译器自动创建一个事件名叫propertyChange用于所有的公有属性,这些属性可以作为绑定表达式的源。这种定义等同于
[Bindable(event="propertyChange")]

如果属性值的改变与原来相同,flex并不传递这个事件或更新属性。

2.2 在类的属性之前
格式为:
[Bindable]
public var foo;

2.3 在属性的getter或setter方法之前
必须同时定义getter和setter方法
[Bindable]

public function get shortNames():Boolean {
...
}

public function set shortNames(val:Boolean):void {
...
}

2.4 使用自定义事件
使用自定义的事件名,如:
[Bindable(event="changeShortNames")]

public function set shortNames(val:Boolean):void {
...
// Create and dispatch event.
dispatchEvent(new Event("changeShortNames"));
}

// Get method.
public function get shortNames():Boolean {
...
}

参考文献
1.Flex 2 中的元数据标签. http://www.iteye.com/topic/152024
2.如何使变量进行Flex数据绑定. http://developer.51cto.com/art/201007/215153.htm[/color][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值