您的位置:首页 > 其它

Flex的数据绑定方式一览

2011-03-17 17:52 316 查看
学Flex2个多星期了,也没觉得有什么难的地方,可能是老外写的那本<<Flex权威指南>>比较浅显易懂吧,有时不得不佩服老外做事的认真劲和耐心,图文对照,很容易理解。现在数据绑定部分看完了,总结一下书中提到的数据绑定方式。

1.数据存放在XML文件中,XML文件存在在工程内,可以直接引用,方式如下:

<mx:Model id="xxx" source="yyy">yyy为XML文件路径+文件名。然后在事件中进行绑定,比如:

<mx:Button click="do(xxx)"/> xxx为上面的id,do(xxx)为AS方法名,通过该方法将数据绑定到控件上。

2.数据来自事件event,target事件源,比如被点击的某个控件; type事件类型,比如Click,mouseover等等。主要谈谈比较特殊的mx.rpc.events.ResultEvent,这个事件封装了HTTP请求的返回数据。

<mx:HTTPService id="catRPC" url="http://www.flexgrocer.com/category.xml" result="catHandler(event)" resultFormat="e4x"/>

在catHandler(event)中,可以直接从event中获取数据源用于绑定。具体实现方法如下:

1)在Script块创建1个变量aaa,并加上[Bindable]标签,表明该数据可用于绑定。

2)在catHandler(event)函数中,将event封装的请求返回数据赋值给aaa;

3)在程序里可以就可以将aaa用于数据绑定了,e4x就是ActionScript原生的XML对象。

3.用于数据绑定的特殊类ArrayCollection,该类在数据发生变化时,视觉显示也会随着更新。

4.将对象的某个属性绑定到List等控件时,除了要指定绑定的数据源,还要指定绑定的对象属性。

<mx:List rowCount="4" dataProvider="{units}" labelField="unitName"/>

dataProvider数据源 labelField绑定的属性名

5.@Embed标签用来决定是否把引用的文件编译进FLASH文件。

6.for each(var p:XML in event.result..product){},2个点表示后代存取器,表示遍历出result中所有的product节点。

7.{}用于数据绑定,@取绑定对象的属性。

<mx:Button id="Add" label="Add to Cart" click="addToCart(inventory.getItemAt(0) as Product)"/>

as表示希望编译器忽略类型差别把取出来的元素当Product类处理。

8.排序

var prodSort:Sort = new Sort();

var sortField:SortField = new SortField("product"); //对product进行排序

prodSort.fields = new Array(sortField);

aItems.sort = prodSort;

aItems.refresh();

9.IViewCursor接口,调用ArrayCollection的createCursor()方法可以获得cursor,然后可以ORACLE操作游标一样操作ArrayCollection。

findFirst(),findAny(),moveNext(); remove();

10.命名空间namespace,用来标示将引用的资源的路径。

11.TitleWindow适合用来做弹出窗口。mx.managers.PopUpManager类可以创建弹出窗口。

ConfirmScreen win = ConfirmScreen(PopUpManager.createPopUp(this,ConfirmScreen,true));this指当前控件,第2个是弹出的窗体类型,第3个参数表示是否是模式窗口。

12.HorizontalList沿水平方向显示项目,TileList动态创建大小相等的行列显示项目。

labelField绑定的字段名称 labelFunction调用函数绑定(可以将数据预处理了显示)。itemRender属性可以用来显示图片,itemRender属性指向某个MXML文件。

13.Repeater 相当于for循环对数据集进行遍历。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: