学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循环对数据集进行遍历。