//什么是Flex
Flex 是一个针对企业级富互联网应用的表示层解决方案。具体地说,Flex是一种应用程序框架。
富互联网应用程序,Rich Internet Application,简称RIA,将桌面应用程序的强交互性和传统Web应用的灵活性结合,对比HTML,表现更花哨,更有趣,更有个性。
//Flex的特性
使用矢量图形;丰富的组件库;对多媒体的广泛支持;
与服务器端的通信:除了可以加载XML和其它文本资料外,Flex还可以和ASP、 ASP.NET、PHP、JSP等多种服务器端程序通信,连接远程WebService,同时Flex还支持Remoting和 Socket等高级数据通信方式。
//Flex和Flash
Flash 的重用性不好;Flex数据交互能力更突出
//Flex程序的组成
以 mxml为后缀的程序文件;以as为后缀的ActionScript文件;以css为后缀的样式表文件
//MXML文件结构
是一个标准的XML文件,包括了版本、编码(可选,默认为utf-8)、命名空间(xmlns)。在一个Flex项目中,可能有很多个MXML文件,但作为程序入口的运行文件只有一个,主文件的标识是根节点为mx:Application,一个程序中只能出现一个mx:Application节点。
//添加按钮事件
当为一个按钮添加click事件时,系统会自动提示生成EventHandler。注意要先定义按钮的ID。
//自定义MXML组件
新建 MXML组件,组件会出现在“组件”面板上,像使用Flex自带组件一样,将其拖放到主程序中即可。
//在MXML文件中插入 ActionScript块
通常情况下,将<mx:Script>标签放在紧跟根节点的位置,放在其他MXML代码的前面:
<mx:Application xmlns:...>
<mx:Script>
<![CDATA[
// 这里是ActionScript代码
]]>
</mx:Script>
</mx:Application>
//调试
F8是运行。F5单步跳入。F6单步跳过。Ctrl+F2终止。
//断点
断点右键可设置断点属性,定义断点的条件。
//生成get,set
高亮字段,如_NewsId,右键,源代码,生成Getter/Setter
//List(array)和 Tree(xml)的绑定
<mx:List x="20" y="20" dataProvider="{array_data}" width="180"></mx:List>
<mx:Tree x="20" y="200" labelField="@label" dataProvider="{myData}" width="180"></mx:Tree>
//常用布局组件
Canvas(自由布局)、VBox(垂直布局)、HBox(水平布局),默认状态下滚动条采用自动适应的原则。
Panel具有Canvas、VBox和HBox 的所有功能。如果Panel的layout属性值为“absolute”,则Panel对子级元素的布局方式和Canvas一样;当值为 horizontal时相当于HBox,值为vertical则相当于VBox。
TitleWindow组件继承于Panel组件,与Panel 相比,它只多了一个关闭按钮。关闭事件为close。
Grid可以像Table一样使用,单元格也有colSpan和rowSpan。
Accordion 组件:一个可折叠的导航器,它包含一个子面板的列表,一次仅显示一个面板,可切换。
ViewStack组件:由若干个重叠在一起的子容器组成,每次只有一个容器是可见或活动的。要通过AS代码来控制切换,设置viewstack.selectedChild。
TabNavigator,继承自ViewStack,类似ajax的tab控件。
//事件查看和生成
选中控件,点击菜单栏“窗口”“属性”,在属性窗口中,选择“按字母排序视图”。
//form表单控件
通过 FormItem快速部署了一个用户信息表单。对表单的验证:
<mx:StringValidator source="{user_txt}" property="text" minLength="6" maxLength="12" tooShortError="用户名太短了"/> //自定义提示取代默认提示
<mx:StringValidator source="{pass_txt}" property="text" minLength="6" maxLength="12"/> //默认提示
<mx:PhoneNumberValidator source="{phone_txt}" property="text"/> //电话验证
<mx:DateValidator source="{birth_txt}" property="text"/> //日期验证
<mx:EmailValidator source="{email_txt}" property="text"/> //email验证
//DataGrid组件
<mx:DataGrid ... dataProvider="{books.book}">...<mx:columns><mx:DataGridColumn dataField="name" headerText="书名"/>... //Model的id为books
在 DataGrid组件中使用itmeRenderer(加入自定义控件):...<mx:DataGridColumn headerText="购买" itemRenderer="view.cartCell"/>...
除了itemRenderer,同样可以自定义的还有headerRenderer和itemEditor,前者控制标题栏的界面,后者控制单元格在编辑状态下的界面(DataGrid的 editable为true时)
//Tree组件
<mx:Tree ... dataProvider="{files}" labelField="@label" change="treeChange(event)"... /> //XMLList的id为files;
public function treeChange(event:Event):void { selectedNode = Tree(event.target).selectedItem as XML; txt.text = selectedNode.@label; }
//TileList组件
和 List一样,它也支持自定义itmeRenderer。<mx:TileList itemRenderer="ImageItem" ... dataProvider="{images.item}"> //ImageItem是mxml自定义控件
//文件处理
Text、 TextInput和TextArea。Text可以支持html标签(即解释html),不过需要借助htmlText标签(使用时必须含有CDATA 标签)
RichTextEditor编辑器,使用obj.htmlText和obj.text得到文本值。
//导航类控件
ToggleButtonBar 和TabBar,dataProvider为Array。ViewStack的定义:
<mx:ViewStack ;
}
/*第11章 Flex2.0新特性实例开发*/
//正则表达式
//声音控制
//Socket通信
相关文章: