Flex学习笔记3——组件和容器
组件UIComponent: ???????? 组件的基类,所有可视化组件从这继承,而且它是Sprit的子类,具有绘图功能。 常见组件RadioButtonGroup:控制一组的radioButton。 ApplicationControlBar:实现工具栏 ButtonBar一组button的集合。 LinkBar将一组LinkButton组合起来 List 定义自己的itemRenderer对象,对获得的数据进行解析,使得List组件的内容不再局限于文字,还可以是图片及其他内容 DataGrid组件:将数据以行,列的格式显示出来。特征如下:
Tree组件:使用xml为Tree生成数据很合适,<mx:XMLList>和<mx:XML>定义XML数据,实现自定义的itemRenderer继承于TreeItemRenderer比较方便 TileList:综合了Tile和List的优点,在一行上可显示多余一个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一起使用,通过TabBar的itemClick事件的关联,可以实现选项卡效果,不知道和TabNavigator有什么不一样 ?????? 菜单:使用MenuBar实现全局导航,支持XML和数组作为数据源。应该可以使用二维数组和xml实现多级菜单功能。 ?????? PopUPBotton右侧有下拉箭头的button,当点击下拉箭头时,可以将任何组件作为窗口弹出,如树,列表等,比较重要的事件是open和close,open在窗口弹出时触发,close在关闭时触发。 ?????? PopUpMenuButton继承自PopUpButton只能将menu控件当做弹出窗口,实现右键菜单,或pannel中的下拉菜单,尽量不要使用一级菜单。并可以指定其为图片(小三角) 实例运用画板的实现?????? 画板使用Panel嵌套Canvas构成,使用Canvas的graphics属性,对 Mousedown,up,move事件监听并处理完成完成画线功能, 图片加载器?????? 使用SWFLoader完成图片的加载 ?????? 指定ProgressBar的source指明衣服的对象,该对象必须自行检测加载进度并派发process事件和completed事件。 FLV视频播放器?????? 使用VideoDisplay完成flv的播放,也可以和progressBar配合 容器Container: ???????? 容器的基类,管理UIComponent对象布局的组件容器,其中getChildren()用于获取子组件的数组、getChildAt(),numChildren获取子组件的数量。而Container除了子组件外,还有其内部对象如边框、背景等,可通过 rawChildren获得。 常见容器1.???????? Application由layout控制整个界面的布局 2.???????? Canvas只能由x和y坐标来定位,在ActionScript中设置%的长和宽,需要使用percentWidth和percentHeight; 3.???????? Vbox和Hbox采取水平和垂直方向的排序 4.???????? DivideBox: HdivideBox和VdivideBox在子元素之间加入了可以拖动的分割块。liveDragging是否拖动 5.???????? Panel的layout属性为absolute,则相当于Canvas,值为horizontal则为Hbox,值为vertical则为Vbox; title属性表示标题,使用容器ControllBar放置按钮 6.???????? TitleWindow多了一个关闭按钮 7.???????? 对话框:使用PopUPManager.addPopUp()和removePopUp弹出 布局容器1.?????? Tile指定每行显示个数,当要显示超出个数,则自动转到下一行,适合显示个数未知的动态数据。 2.?????? Grid类似于表格,可以对每个子元素进行布局 导航容器1.????? Accordion:可折叠的导航器,包含一个子面板列表,但每次只显示一个面板,类似于危险源的菜单 2.????? ViewStack:由若干重叠在一起的子容器组成,每次只有一个容器是可见和活动的。 3.????? TabNavigator:选项卡,其中可包含Cavas,Panel等内容作为一个选项卡 表单容器Mx:Form? mx:FormHeading? mx:FormItem完成内容 验证<mx:StringValidator>等有文本,信用卡,货币验证,电子邮件,日期,电话号码和正则表达式,邮政编码验证 样式设置组件的样式CSS包含文件? <mx:Style source=””>?常用 添加样式订一块? <mx:Style>?小范围应用 使用getStyle和setStyle??????运行时改变,大型程序中,比较影响效率,尽量避免使用 使用StyleMananger类 设置多个相同的样式:使用全局的类型样式,或者给对象定义一个样式 使用主题?????? 一个配置完整的样式包,样式包定义的色彩和外观形成一种表现风格,类似于skin,一般以SWC文件存放,已提供的样式:frameworks/themes文件夹下 ?????? 使用:在flex-config.xml的theme标签中设置 修改组件的外观通过CSS修改外观,有两种方式: 嵌入图像资源: 嵌入图像时,为了保证缩放不失真,使用九格缩放的功能,在Embed中指定scaleGridTop? scaleGridBotttom? scaleGridLeft? scaleGridRigth属性指定中间区域的大小。 通过程序绘制: ?????? 覆盖ProgrammaticSkin的updateDisplayList方法 ?????? 将新建的类嵌入到样式中 自定义windows组件?????? 在SWF中可包含多个外观文件,可以代替图片载入。在做fla时已经加入了九格缩放功能,嵌入SWF文件时不需要。利用SWF可以在背景中加入动画效果,丰富程序的界面 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |