浅淡FLEX spark组件-容器篇
前台什么的做多了,对做FLEX有些排斥,但这样很不好。既然决定想做游戏了,那只能继续下去。 于是我又装上了UBUNTU,花了一整天把FLEX SDK和FLEX IN MYECLIPSE给配了起来,总算可以用了,但在这里,我配的FLEX有些许缺陷:不能在MYECLIPSE中查看文档,也不能进入图形编辑界面。但是这样却挺适合我的,哈哈~ ? 最近把事情都推掉了,于是好好学习,以下是我这几天应用FLEX组件,对这些组件的认识。 在这里,我把spark组件分为两类:容器与应用组件。 容器是容纳各种组件的组件,有Application(Windows),BorderContainer,DataGroup,Panel,TitleWindows,Group中还扩展出HGroup与VGroup,而应用组件是完成各种功能的组件,有Button,ButtonBar,ButtonBarButton,CheckBox,ComboBox,DropDownList,List,RadioButton,TextArea等等。 ? 一、Application ? ? ? ? Application(Windows)是每个FLEX网页(AIR)必有的一个容器(至少我看到的FLEX应用都是如此),在程序进入第2帧,主程序Application开始运行后,会按照如下流程执行应用: 1. 实例化Application对象 2. 初始化Application.systemManager 3. Application在初始化过程之前,派发预初始化事件. 4. 调用createChild(). 此时,所有应用组件被创建,所有组件的createChild()被调用. 5. Application派发初始化事件,表明所有的组件初始化完毕. 6. 派发creationComplete事件 7. Application对象添加到显示列表中 8. 派发applicationComplete事件 SystemManager是Flex应用的主控者,它控制着应用窗口,Application实例,弹出窗口,cursors,并管理着ApplicationDomain中的类. SystemManager是FlashPlayer实例化的第一个类,它存储了主应用窗口的大小和位置信息,保存其子组件比如:浮动弹出窗口和模态窗口的痕迹. 通过SystemManager可以获得内嵌字体,样式和document对象. ? 二、BorderContainer ? ? ? ?BorderContainer是个很神奇的东西,当我起初看到这个容器的时候,我有种不知道该怎么下手的感觉。 ? ? ? ?它就一边框,我们可以通过定义属性来控制边框的角的圆滑度,边框的粗细,颜色,容器内的填充颜色等等。让我有点郁闷的原因是因为看到这个容器的时候却想不到这东西可以用在哪,感觉没有存在的必要(奇怪了,为什么我会 这么觉得呢?)。 但仔细一想,其实BorderContainer的用到的地方挺多的。比如说用FLEX做一个网站型的应用,在布局排版中给一块内容部加上边框。说白了,其实它就相当于CSS中的border属性,不过与CSS中的不同的就是,CSS是给一个自定的区域自定义加上边框,而BorderContainer直接上边框(这不一样么,坑爹呢都)。 ? 三、Panel与TitleWindow ? ? Panel是我学FLEX以来接触最多的容器了,原因有二,外观不错,很合我口味,而且很实用。但这里主要讲TitleWindow(因为TitleWindow包含了Panel的特性)。 ? ? TitleWindow是Panel的扩展组件,它比TitleWindow多了一个关闭按钮,在mx.managers这个包中有个PopUpManager,可以直接去操作TitleWindow的打开与关闭,下面是FLEX API中的一个例子:
SimpleTitleWindowExample.mxml
TitleWindowApp.mxml
在TitleWindowApp.mxml中的居中的Panel组件中有个myButton, 点击后通过点击myButton,调用PopUpManager类中的createPopUp方法创建了一个自定的TitleWindow :?SimpleTitleWindowExample。 然后通过侦听SimpleTitleWindowExample的关闭按钮关闭SimpleTitleWindowExample。 ? 四、Group与HGroup、VGroup、TileGroup ? ? ? ?Group 类是可视元素的容器基类。Group 容器将实现 IUIComponent 接口的任何组件和实现 IGraphicElement 接口的任何组件视为子代。希望管理可视子项(可视组件和图形组件)时,使用此容器。 ? ? ?这是在FLEX API中对Group的定义。 Group相对于VBox,HBox,Grids来说,是轻量级的容器,它不能设置外观,可以容纳可视化的组件。 HGroup 容器是使用 HorizontalLayout 类的 Grou VGroup 容器是使用 VerticalLayout 类的 Group 容器的一个实例, TileGroup 容器是使用 TileLayout 类的 Group 容器的一个实例. 于是,HGroup,VGroup可以不用添加layout 属性,就可以改变Group容器中的排版形式。 ? 五、DataGroup ? ? ? ? DataGroup 类是数据项目的容器基类。DataGroup 类将数据项目转换为可视元素以进行显示。尽管此容器可以包含可视元素,但它通常仅用于包含作为子项的数据项目。 ? ? ? ?DataGroup可以通过dataProvider向内添加内容, ? 容器部分差不多了。嗯。就这样。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |