当前位置: 首页>编程语言>正文

swift 无损缩放图片 swf缩放失真吗

组件

UIComponent:

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

常见组件

RadioButtonGroup:控制一组的radioButton。

ApplicationControlBar:实现工具栏

ButtonBar一组button的集合。

LinkBar将一组LinkButton组合起来

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

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

l   调整列的宽度;

l   调整列的顺序;

l   点击列标题排序;

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

l   可以定义headerRender和itemEditor,要使用itemEditor必须把DataGrid的editable设为true

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可以在背景中加入动画效果,丰富程序的界面

 


https://www.xamrdz.com/lan/5dj1963602.html

相关文章: