加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex学习笔记3——组件和容器

发布时间:2020-12-15 01:18:28 所属栏目:百科 来源:网络整理
导读:组件 UIComponent : ???????? 组件的基类,所有可视化组件从这继承,而且它是 Sprit 的子类,具有绘图功能。 常见组件 RadioButtonGroup :控制一组的 radioButton 。 ApplicationControlBar :实现工具栏 ButtonBar 一组 button 的集合。 LinkBar 将一组 L

组件

UIComponent

???????? 组件的基类,所有可视化组件从这继承,而且它是Sprit的子类,具有绘图功能。

常见组件

RadioButtonGroup:控制一组的radioButton

ApplicationControlBar:实现工具栏

ButtonBar一组button的集合。

LinkBar将一组LinkButton组合起来

List 定义自己的itemRenderer对象,对获得的数据进行解析,使得List组件的内容不再局限于文字,还可以是图片及其他内容

DataGrid组件:将数据以行,列的格式显示出来。特征如下:

l?? 调整列的宽度;

l?? 调整列的顺序;

l?? 点击列标题排序;

l?? 定义每个单元格的itemRenderer,类似于formatOperate函数,方法是在canvas中定义要在单元格中显示的控件,

l?? 可以定义headerRenderitemEditor,要使用itemEditor必须把DataGrideditable设为true

Tree组件:使用xmlTree生成数据很合适,<mx:XMLList><mx:XML>定义XML数据,实现自定义的itemRenderer继承于TreeItemRenderer比较方便

TileList:综合了TileList的优点,在一行上可显示多余一个item,好处是可以用itemRenderer定制显示方式

NumericStepper:实现数字的选择,防止格式错误

文本组件

Text相当于Label,要支持html标签,使用htmlText实现

TextInput相当于html中的Text

TextArea

RichTextEditor类似于csdn中博客编辑器

?????? 当使用的字体在客户机上没有时,有两种替代方式,一般使用设备字体(_sans,serif,_typewriter)在CSS中定义;但如果在动画效果Fade(淡入淡出效果),Rotate,disolve(溶解)就必须使用嵌入字体,可以指定嵌入字体的范围,从而减少字体文件大小,方法是frameworks/flex-config.xml中的fonts.

导航类组件

?????? ToggleButtonBar效果不是很好看

?????? TabBar不包含其他子级容器,与ViewStack一起使用,通过TabBaritemClick事件的关联,可以实现选项卡效果,不知道和TabNavigator有什么不一样

?????? 菜单:使用MenuBar实现全局导航,支持XML和数组作为数据源。应该可以使用二维数组和xml实现多级菜单功能。

?????? PopUPBotton右侧有下拉箭头的button,当点击下拉箭头时,可以将任何组件作为窗口弹出,如树,列表等,比较重要的事件是openclose,open在窗口弹出时触发,close在关闭时触发。

?????? PopUpMenuButton继承自PopUpButton只能将menu控件当做弹出窗口,实现右键菜单,或pannel中的下拉菜单,尽量不要使用一级菜单。并可以指定其为图片(小三角)

实例运用

画板的实现

?????? 画板使用Panel嵌套Canvas构成,使用Canvasgraphics属性,对 Mousedown,up,move事件监听并处理完成完成画线功能,

图片加载器

?????? 使用SWFLoader完成图片的加载

?????? 指定ProgressBarsource指明衣服的对象,该对象必须自行检测加载进度并派发process事件和completed事件。

FLV视频播放器

?????? 使用VideoDisplay完成flv的播放,也可以和progressBar配合

容器

Container

???????? 容器的基类,管理UIComponent对象布局的组件容器,其中getChildren()用于获取子组件的数组、getChildAt()numChildren获取子组件的数量。而Container除了子组件外,还有其内部对象如边框、背景等,可通过 rawChildren获得。

常见容器

1.???????? Applicationlayout控制整个界面的布局

2.???????? Canvas只能由xy坐标来定位,在ActionScript中设置%的长和宽,需要使用percentWidthpercentHeight;

3.???????? VboxHbox采取水平和垂直方向的排序

4.???????? DivideBox HdivideBoxVdivideBox在子元素之间加入了可以拖动的分割块。liveDragging是否拖动

5.???????? Panellayout属性为absolute,则相当于Canvas,值为horizontal则为Hbox,值为vertical则为Vbox; title属性表示标题,使用容器ControllBar放置按钮

6.???????? TitleWindow多了一个关闭按钮

7.???????? 对话框:使用PopUPManager.addPopUp()removePopUp弹出

布局容器

1.?????? Tile指定每行显示个数,当要显示超出个数,则自动转到下一行,适合显示个数未知的动态数据。

2.?????? Grid类似于表格,可以对每个子元素进行布局

导航容器

1.????? Accordion:可折叠的导航器,包含一个子面板列表,但每次只显示一个面板,类似于危险源的菜单

2.????? ViewStack:由若干重叠在一起的子容器组成,每次只有一个容器是可见和活动的。

3.????? TabNavigator:选项卡,其中可包含CavasPanel等内容作为一个选项卡

表单容器

Mx:Form? mx:FormHeading? mx:FormItem完成内容

验证<mx:StringValidator>等有文本,信用卡,货币验证,电子邮件,日期,电话号码和正则表达式,邮政编码验证

样式

设置组件的样式CSS

包含文件? <mx:Style source=””>?常用

添加样式订一块? <mx:Style>?小范围应用

使用getStylesetStyle??????运行时改变,大型程序中,比较影响效率,尽量避免使用

使用StyleMananger

设置多个相同的样式:使用全局的类型样式,或者给对象定义一个样式

使用主题

?????? 一个配置完整的样式包,样式包定义的色彩和外观形成一种表现风格,类似于skin,一般以SWC文件存放,已提供的样式:frameworks/themes文件夹下

?????? 使用:在flex-config.xmltheme标签中设置

修改组件的外观

通过CSS修改外观,有两种方式:

嵌入图像资源:

嵌入图像时,为了保证缩放不失真,使用九格缩放的功能,在Embed中指定scaleGridTop? scaleGridBotttom? scaleGridLeft? scaleGridRigth属性指定中间区域的大小。

通过程序绘制:

?????? 覆盖ProgrammaticSkinupdateDisplayList方法

?????? 将新建的类嵌入到样式中

自定义windows组件

?????? SWF中可包含多个外观文件,可以代替图片载入。在做fla时已经加入了九格缩放功能,嵌入SWF文件时不需要。利用SWF可以在背景中加入动画效果,丰富程序的界面

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读