9.2.1 函数和类级别的绑定
[Bindable]标签打使用:
- 变量级别的绑定,[Bindabl(event="propChange")] 如果自己指定事件,必须自己写代码派发事件,否则不会触发绑定行为。
- 在函数前定义,必须是通过setter和getter方式定义,必须写在set前面。Num相当于属性:
[Bindable]
public function set Num(n:Number):void{...}
public function get Num():void{...}
- 在一个公有类的定义前使用,这样这个类的所有公有变量,set、get方式定义的函数,都可以用于绑定,这就是对象级别的绑定。
9.2.2 使用ActionScript 来定义绑定
BindingUtils 位于mx.binding.utils 包中:
- bindProperty( 用来进行属性级别的绑定
site:Object, 表示目标对象
prop:String, 目标对象的公有属性名,当值发生变化时,派发绑定事件
host:Object, 数据源对象
chain:Object, 数据源对象被绑定的属性名,或通过getter定义的函数名
commitOnly:Boolean=false
默认false,表示要发生值的到改变时就会引发绑定行为。true:表示对对象有写操作时仍然会派发事件,但不会激发绑定行为,只有确认了改变的数据,
并派发事件valueCommit 后,绑定动作才开始执行。
)
- bindSetter( 专门用于setter 和 getter 函数的绑定
setter:Function, 函数,用来改变数据源对象的值,可以直接在代码中声明一个函数体
host:Object, 数据源对象
chain:Object, 数据源对象被绑定的属性名,或通过getter定义的函数名
CommitOnly:Boolean=false 默认false。同上。
)
ChangeWatcher 对象 位于mx.binding.utils 包中,侦听绑定的动作:
var cw:ChangeWatcher = ChangeWatcher.watch(tip_txt, "text", handler);
cw.unwatch(); //停止监听
watch(
host:Object, 数据源对象
chain:Object, 数据源对象被绑定的属性名,或通过get定义的函数
handler:Function, 监听函数
commitOnly:Boolean=false 默认false,表示只要发生值的改变时就会引发绑定行为,同上
)
9.2.3 数据绑定中的特例
在绑定中出现问题,一般有以下情况:
- 数据源没有被更改
- 绑定事件没有被派发出去
- 目标对象没有收到资源,也就无法更新
Object 类型作为所有类型的父类,它不完全支持数据绑定。
Object 类型属于动态类型,可以随意的向里面添加任何属性,而且属性的类型也是任意的。
如果要对Object类型绑定,必须使用 mx.utils 包中的 ObjectProxy 对象:
[Bindable]
internal var info:Object;
internal var function ininApp():void{
//定义info 的属性值
info = new ObjectProxy();
info.label = "label";
BindingUtils.bindProperty(tip_txt, "text", info, "label"); //设置绑定
}
Proxy 是代理的意思,ObjectProxy 就相当于 Object 的代理人,提供了数据绑定的接口,任何属性发生变化时,都会派发事件。
ArrayCollection 是增强性的 Array,依然是用数组来存储数据,但支持多种排序、属性绑定等,适合用来处理复杂数据。
setItemAt(item:Object, index:int); //将元素插入到数组指定的位置,如果存在则替换
数组类型的对象,其子元素是无法作为数据源绑定的。
分享到:
相关推荐
Flex学习笔记_09 数据绑定_概念、使用 - Java&Flex - JavaEye技术网站 希望对爱好有帮助!!
Flex学习笔记Flex学习笔记Flex学习笔记Flex学习笔记Flex学习笔记
学习了一段时间的flex... 上传点资源,大家分享。 flex,怎么学习flex,Flex_3_Cookbook_中文版
Flex_3_with_JavaFlex_3_with_JavaFlex_3_with_JavaFlex_3_with_Java
amcharts_flex_components_1.8.1 和开发示例
Flex_CookBook_读书笔记(精品) Flex_CookBook_读书笔记(精品)
flex数据交互_方式
arcgis_api_for_flex_3_6 api库文件,现在esri官网需哟注册才能下载了,而且网速超慢,我下了好几次才下载完,希望对大家有用
ArcGIS_Flex_API_高级篇
flex学习笔记 flex学习笔记 flex学习笔记 flex学习笔记 flex学习笔记 flex学习笔记
MAPABC_FLEX_API_WEB_V2.4
map_flex_1_9map_flex_1_9map_flex_1_9map_flex_1_9map_flex_1_9map_flex_1_9map_flex_1_9
flex4源码 超酷menu导航 flex4
Flex_I_O_简介
Flex_4.0_RIA开发详解讲义.rar Flex_4.0_RIA开发详解讲义.rar Flex_4.0_RIA开发详解讲义.rar Flex_4.0_RIA开发详解讲义.rar
flex数据绑定的原理
flex_and_bison flex_and_bison
Flex_4_界面设计实战.pdf Flex_4_界面设计实战.pdf Flex_4_界面设计实战.pdf Flex_4_界面设计实战.pdf
* fnd_id_flex_segments where id_flex_code=""GL#"" and id_flex_num=50671 * fnd_profile_options_vl * fnd_concurrent_programs 法度表 * fnd_concurrent_requests 恳求表 * fnd_concurrent_processes 过程表 --...
flex_video_帮助