flex数据绑定的最终目的就是在改变模型(数据)的同时,能够将界面上的相应组件进行同步更新。换句话说,我们应该在项目运行时,极力避免直接操作构成视觉界面的那些组件,而是让这些组件自动根据数据的改变做出反应,这就是数据绑定的本质。
(1)属性的绑定。说个小例子:在一个application文件里有一个属性str:String,他的值被绑定到一个label的text属性上,“<s:label text={str}/>”
如果str前面不加[Bindable]标签的话,在程序里面改变str的值,label 显示是不会随之改变的,也就是说,数据值改变,但是界面上不会同步改变,值就是绑定的第一种用法。
(2)类的绑定。说个例子,现在有一个Person类,里面有两个公有属性firstName和lastName,都是string类型,此时,我在类的上面添加 一个[Bindable]标签,这个标签的作用是监听类里面的所有属性的变化,此种用法和每个属性上分别添加[Bindable]标签功能相同。之后我在一个在application文件里应用这个类var person:Person = new Person(),并在这句话上添加[Bindable]标签,此时这个标签的作用是监听这个类的变化。 并将他的两个属性分别绑定到label上,,“<s:label text={firstName}/>”,“<s:label text={lastName}/>”。这两个标签,如果只去掉类里面本身那个标签,则当单独改变类里面的属性时label不会改变,如果只去掉application里面person上面的标签,无论是改变整个person还是改变里面的属性,label都不会改变。