[Bindable]与[Bindable("changeEvent")]/[Bindable(event="changeEvent")]区别和使用说明
2011-12-09 16:58
357 查看
[Bindable]与[Bindable("changeEvent")]/[Bindable(event="changeEvent")]
可以在声明在属性或setter上,实现不同对象之间的绑定关系
两者都是实现对数据的绑定,
前一种方式在属性改变时会自动派发一个PropertyChangeEvent,事件中包含的属性有:
而在派发事件之前flex会添加监听PropertyChangeEvent的监听器,当监听到PropertyChangeEvent时,flex就会修改被动对象属性的值,从而实现不同对象之间的绑定关系。这种方式相对后者来说比较简单,但可控性不强。且对于复杂的绑定效率会很低,并且可能失效,同时如果属性值的改变与原来相同,flex并不传递这个事件或更新属性。
后一种方式,和前者一样flex会添加监听Event("changeEvent")的监听器,此时的Event是开发者自己声明的Event,必须由开发者手动派发Event("changeEvent"),监听到该事件时flex会修改被动对象属性的值,从而实现不同对象之间的绑定关系。这种方法可控性比较强,可实现比较复杂的绑定,但实现比较繁琐。如
[Bindable("changeEvent")]
public function set address(add:String):void{
this._address = add;
dispatcher(new Event("changeEvent"));
}
可以在声明在属性或setter上,实现不同对象之间的绑定关系
[Bindable] private var _address; | [Bindable("changeEvent")]/[Bindable(event="changeEvent")] private var _address; |
[Bindable] public function set address(add:String):void{} | [Bindable("changeEvent")]/[Bindable(event="changeEvent")] public function set address(add:String):void{} |
前一种方式在属性改变时会自动派发一个PropertyChangeEvent,事件中包含的属性有:
kind:String | 指定更改的类型 |
newValue:Object | 更改后属性的值 |
oldValue:Object | 更改前属性的值 |
property:Object | 指定已更改属性的 String、QName 或 int。 |
source:Object | 发生更改的对象 |
后一种方式,和前者一样flex会添加监听Event("changeEvent")的监听器,此时的Event是开发者自己声明的Event,必须由开发者手动派发Event("changeEvent"),监听到该事件时flex会修改被动对象属性的值,从而实现不同对象之间的绑定关系。这种方法可控性比较强,可实现比较复杂的绑定,但实现比较繁琐。如
[Bindable("changeEvent")]
public function set address(add:String):void{
this._address = add;
dispatcher(new Event("changeEvent"));
}
相关文章推荐
- [Bindable]绑定和[Bindable("eventname")]绑定的区别
- ie与firefox下的event使用说明与详细区别
- System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/>
- 常见图像格式类型区别及使用说明&绝对路径和相对路径的使用场景&css3实现loading效果
- 在置中使用EnableEventValidation="false"的 解决方案
- lua 点号"."和冒号":"、"seif"使用及区别
- Java中equals与"=="的使用区别
- 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true"
- FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- 关于"Excel._Worksheet和DocEvents_Event之间存在二义性.将使用方法组"的问题
- C++中头文件使用""与<>的区别
- 回发或回调参数无效。在配置中使用...pages enableEventValidation="true"/> ...........
- System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/> 或在页面中使用 <% @ Page
- "我佛山人"编写的表单验证类 Validator使用说明
- asp.net中回发或回调参数无效。在配置中使用 <pages enableEventValidation="... 问题解决
- 关于"Excel._Worksheet和DocEvents_Event之间存在二义性.将使用方法组"的问题
- 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/>
- 总结:FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别