Flex 3 Flex 3 基础教程(基础教程(44))
——Flex 3 Flex 3 数据绑定数据绑定
郑岩峰郑岩峰
2008-5-232008-5-23
什么是数据绑定什么是数据绑定
§§ 数据绑定:当数据源对象的数据发生变化时,目数据绑定:当数据源对象的数据发生变化时,目
标对象的数据会自动更新,而不需要我们再编写标对象的数据会自动更新,而不需要我们再编写
代码去强制更新代码去强制更新
§§ 绑定实际也是借助事件机制来完成的,当目标使绑定实际也是借助事件机制来完成的,当目标使
用了数据绑定的时候,目标对象就会监听数据源用了数据绑定的时候,目标对象就会监听数据源
对象的某一固定事件。当数据源发生变化时,数对象的某一固定事件。当数据源发生变化时,数
据源会派发改变事件(据源会派发改变事件(ChangeEventChangeEvent),通知目),通知目
标对象更新数据。这个过程由标对象更新数据。这个过程由FlexFlex完成,不用我完成,不用我
们手动干预。们手动干预。
§§ 绑定的前提条件:源对象的数据和目标对象的数绑定的前提条件:源对象的数据和目标对象的数
据格式相同。据格式相同。
实现数据绑定的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
实现数据绑定的方法
§§ 1.1.在对象的属性标签中在对象的属性标签中,,使用使用{ }{ }把数据源直接绑定把数据源直接绑定
到对象的某个属性上。到对象的某个属性上。
§§ 2.2.在对象的属性标签中在对象的属性标签中,,使用使用{ }{ }把某个函数的返回把某个函数的返回
值作为数据源绑定到对象属性上。值作为数据源绑定到对象属性上。
函数的参数要使用函数的参数要使用[[BindableBindable]]绑定符号绑定符号
[[BindableBindable]]
[[Bindable(eventBindable(event==““eventnameeventname””)])]
EventEvent表示当数据源发生变化时,数据源所在对象表示当数据源发生变化时,数据源所在对象
派发的事件类型,它是可选项,默认的事件名是派发的事件类型,它是可选项,默认的事件名是
““propertyChangepropertyChange””,一般情况下只需要使用,一般情况下只需要使用
[[BindableBindable]]标签标签
实现数据绑定的方法实现数据绑定的方法
§ 3.使用
标签
source=“…” destination=“…”
<>标签标签
<>
FLEXFLEX教程教程
张三张三
JAVAJAVA高级编程高级编程
李四李四
>
ObjectObject对象和动态对象对象和动态对象
§§ ObjectObject对象是一个动态对象对象是一个动态对象
varvar o:Objecto:Object=new Object();=new Object();
o.nameo.name==““JackJack””;;
o.ageo.age=20;=20;
o.addresso.address==““北京海淀北京海淀100100号号””;;
§§ ModelModel中的节点数据默认是中的节点数据默认是ObjectObject类型,作类型,作
数据源必须转换成数据源必须转换成ObjectProxyObjectProxy类型。类型。
数据绑定的几点说明数据绑定的几点说明
§§ [[BindableBindable]]标签用于函数时,只能在标签用于函数时,只能在settersetter和和
gettergetter方式定义的函数前使用。称为函数级方式定义的函数前使用。称为函数级
别绑定。别绑定。
§§ [[BindableBindable]]标签用于标签用于公有公有类时,这个类的所类时,这个类的所
有有公有公有变量、变量、 settersetter和和gettergetter方式定义的函方式定义的函
数都可以用于绑定。成为对象级别绑定。数都可以用于绑定。成为对象级别绑定。
BindingUtilsBindingUtils和动态绑定和动态绑定
§§ Mx.binding.utilsMx.binding.utils
§§ BindingUtilsBindingUtils提供了两个静态方法处理动态提供了两个静态方法处理动态
绑定绑定
§§ bindProperty(site:Object,prop:String,host:bindProperty(site:Object,prop:String,host:
Object,chain:Object,commitOnly:BooleanObject,chain:Object,commitOnly:Boolean==
false)false)
§§ bindSetter(setter:Function,host:Object,chaibindSetter(setter:Function,host:Object,chai
n:Object,commitOnly:Booleann:Object,commitOnly:Boolean=false)=false)