其他交互设计

在交互设计控件中,除了文本控件、按钮控件和图表控件等之外,还有其他一些比较实用的交互式控件,如

数字选择器、日期显示、加载外部swf文件、加载图像、颜色选择器、警告框、进度条、滚动条

一、数字选择器

数字选择器NumericStepper控件的主要是用来选择数字的,是由一个文本域和两个上下箭头的按钮组成。除了使用两个上下箭头的按钮选择数字之外,还可以通过键盘的上下方向键选择。在很多方面的应用都会使用到数字选择器NumericStepper控件,如日期的年月日、时间的时分秒等。

1 创建NumericStepper控件

创建一个数字选择器NumericStepper控件有两种方式:一种是直接拖放控件到设计视图中;另一种是编写代码。第一种方式拖放控件到设计视图中相对直观,不用编写代码。在开发小型的应用程序的时候,可以提高开发效率。数字选择器NumericStepper控件有两个很重要的属性:MinimumMaximumMnimum表示选择数字的最小值。Maximum表示选择数字的最大值。

应用NumericStepper构建一个复合型的日期控件。

<mx:NumericStepper minimum="1908" maximum="2000"x="10" y="10" /><mx:Label text="年" x="85" y="10" /><mx:NumericStepper minimum="1" maximum="12"x="100" y="10" /><mx:Label text="月" x="160" y="10" /><mx:NumericStepper minimum="1" maximum="31"x="175" y="10" /><mx:Label text="日" x="235" y="10" />

二、日期显示

日期可以通过两种控件来显示,一个是DateChooser控件,另一个是DateField控件。DateChooser控件是以日历的形式显示的,而DateField控件则是以文本的形式显示的。

2.1使用DateChooser控件实现日期选择

DateChooser控件是一个日历形式的控件,在头部显示了年份和月份的名称,主体部分则是以网格的显示排列了当前年份和月份的所有的天。用户可以从中选择任意的一天。

<mx:DateChooser x="37" y="10"/>  

2.2 使用DateField控件实现日期选择

DateField控件是一个以文本形式显示的日期控件。在文本框的右侧是一个日历的小图标,当用户单击图表的时候,会弹出一个包含DateChooser控件的窗口。用户选择了一个日期之后,选择的日期会填充到文本框中,同时,此窗口会自动关闭。DateField控件的主要应用在表单等的操作上。

<mx:DateField x="52" y="46"/>

2.3 使用日期类

日期类中包含了一些常用的关于日期的方法,使用这些方法,可以很方便的获取日期信息。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="InitApp()"><mx:Script><![CDATA[// 初始化private function InitApp():void{// 创建日期对象var date1:Date = new Date(2008, 07, 08);// 设置默认显示日期dc1.selectedDate = date1;}       ]]>       </mx:Script>       <mx:DateChooser id="dc1" x="100" y="100" />
</mx:Application>

2.4 设置DateField控件的日期格式

在实际开发过程中,经常会需要自定义某些特殊的日期格式,以满足需要。使用formatString属性就可以设定DateField控件的日期格式。formatString属性的值可以设定为诸如MMDDYYYYYY等字符的组合。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:DateField x="281" y="208" formatString="YYYY-MM-DD" />
</mx:Application>

2.5 设置DateChooser控件的中文显示

默认情况下,DateChooser控件是显示英文的月份和周的。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[private function InitDataChooser():void{// 设置月份名称var arrMonthName:Array = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];// 设置周名称var arrWeekName:Array = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];dc1.monthNames = arrMonthName;dc1.dayNames = arrWeekName;}]]></mx:Script><mx:DateChooser id="dc1" x="151" y="86" creationComplete="InitDataChooser()"/></mx:Application>

三、加载外部SWF文件

如果在一个Flex应用程序中,把另一个Flex应用程序作为SWF文件加载进来,就需要使用SWFLoader控件。

3.1创建SWFLoader控件

SWFLoader控件的主要用途就是加载外部的SWF文件,这个文件可以Flash CS3编译生成的,也可以是Flex Builder 3编译生成的。

默认情况下SWF文件的内容可以自适应SWFLoader控件的大小。SWFLoader控件除了加载SWF文件格式外,也可以加载其他的文件格式到Flex应用程序中,如GIFJPEGPNGSVG等。

定义一个SWFLoader控件可以在代码中使用<mx:SWFLoader>标记,也可以直接从工具面板中拖放控件到主窗口中。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:SWFLoader x="10" y="10" source="@Embed(source='Asset/test.swf')"/>
</mx:Application>

3.2 与已加载的SWF文件交互

SWF文件加载到Flex程序中后,首要的问题就是怎么样能与这个SWF文件交互,即访问这个SWF文件的相关内容。首先看一下怎么样使用SWFLoader控件,在一个Flex程序中加载另一个Flex程序。

1.访问已加载的SWF文件中的控件

lbl.text = loadedSM.application["lblShow"].text;

2.访问已加载的SWF文件中的变量

loadedSM = SystemManager(myLoader.content);

loadedSM.application["strShow"] = "这是更新后的文字。";

3.访问已加载的SWF文件的方法

loadedSM = SystemManager(myLoader.content);

ChildApp(loadedSM.application).SetShowText("这是更新后的文字。");

main.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[import mx.managers.SystemManager;private var loadedSM:SystemManager;// 初始化SWF文件,并把其内容赋给 SystemManager 对象private function InitSWFApp():void {loadedSM = SystemManager(myLoader.content);}// 获取SWF文件中 Label 控件的 text 属性private function GetSWFLabel():void{lbl.text = loadedSM.application["lblShow"].text;}// 修改SWF文件中 Label 控件的 text属性private function UpdateSWFLabel():void{loadedSM.application["lblShow"].text = "这是更新后的文字。";}]]></mx:Script><mx:Label id="lbl" x="203" y="62"/><mx:SWFLoader id="myLoader" width="300" source="ChildApp.swf" x="10" y="10"creationComplete="InitSWFApp();"/><mx:Button click="GetSWFLabel();" x="10" y="60" label="获取SWF文件中的Label控件"/><mx:Button label="修改SWF文件中的Label控件" click="UpdateSWFLabel();" x="10" y="90"/>
</mx:Application>

ChildApp.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Label id="lblShow" text="这是已加载的SWF文件中的控件" fontSize="20" x="1" y="0"/>
</mx:Application>

四、加载图像

Flex应用程序中,也可以实现加载图像的功能。Flex支持绝大部分主流的图片格式,包括GIFJPEGPNGSVG等等4.1创建Image控件

Flex中,加载图像的常用方法之一就是使用Image控件。

<mx:Image x="10" y="10" source="@Embed(source='assets/test.jpg')"/>

4.2 加载图像

除了设置Image控件的Source属性直接加载图像外,还可以使用代码来控制图像的加载。加载图像主要使用Image控件的load()方法。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[private function InitImage():void{// 加载图片资源img.load("assets/test.jpg");}]]></mx:Script><mx:Image id="img" x="10" y="10" creationComplete="InitImage();"/>
</mx:Application>

五、颜色选择器

颜色选择器允许用户从一个下拉式的颜色面板中,选择适合的颜色值。颜色选择器主要应用于文本编辑器,更换控件样式颜色等。

5.1创建ColorPicker控件

Flex中,已经提供了ColorPicker控件来创建颜色选择器。

<mx:ColorPicker x="10" y="10"/>

5.2 自定义面板显示的颜色

默认情况下,颜色面板会列出系统所有的颜色。当然,通过代码还可以自定义面板中列出的颜色。自定义颜色通过ColorPicker控件的dataProvider属性,与数组绑定,然后可以在数组中定义要列出的颜色的值。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[[Bindable]// 创建数组,填充各种颜色的RGB值public var simpleDP:Array = ['0x000000', '0xFF0000', '0xFF8800','0xFFFF00', '0x88FF00', '0x00FF00', '0x00FF88', '0x00FFFF','0x0088FF', '0x0000FF', '0x8800FF', '0xFF00FF', '0xFFFFFF'];]]></mx:Script><mx:ColorPicker x="10" y="10" dataProvider="{simpleDP}" /></mx:Application>

5.3 自定义面板显示的标签

除了可以自定义颜色的值外,还可以定义颜色标签的描述。其方法与5.2节类似,也是通过绑定数组。不同的是,需要定义一个数组集合,其中定义了颜色标签、颜色值和描述。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[import mx.events.ColorPickerEvent;import mx.events.DropdownEvent;// 创建数组,并填充颜色相关数据[Bindable]public var complexDPArray:Array = [{label:"黄色", color:"0xFFFF00",descript:"黄色"},{label:"粉色", color:"0xFF66CC",descript:"粉色"},{label:"深红色", color:"0x990000",descript:"深红色"},{label:"蓝色", color:"0x000066",descript:"蓝色"},{label:"深绿色", color:"0x006600",descript:"深绿色"},{label:"褐色", color:"0x666666",descript:"褐色"}];]]></mx:Script><mx:ArrayCollection id="complexDP" source="{complexDPArray}"/><mx:ColorPicker id="cp" dataProvider="{complexDP}" editable="false" x="23" y="19"/>
</mx:Application>

六、警告框的设计

警告框是在实际开发中使用最多的功能。在Flex中,提供了一个Alert类来实现警告框,其中定义了一个全局的静态方法show()

6.1创建警告框

所有的Flex组件都可以调用Alert类中的静态方法show(),弹出一个带有消息的模式警告框。

text 在 Alert 控件中显示的文本字符串。此文本将在警告对话框中居中显示。title 标题栏中显示的文本字符串。此文本左对齐。flags Alert 控件中放置的按钮。

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ // 引用 Alert 类 import mx.controls.Alert; private function Btn_Click():void { // 调用show方法,弹出警告框 Alert.show("这是一个警告框!", "警告框"); } ]]> </mx:Script> <mx:Button click="Btn_Click()" label="警告框" x="77" y="50" fontSize="12"/> </mx:Application>

6.2 警告框的事件

默认情况下,弹出的警告框只有OK按钮。使用Alert类还可以设置其他的按钮和显示数量,并且还可以侦听到警告框中按钮的事件。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[import mx.controls.Alert;import mx.events.CloseEvent;// 创建 Alert 对象private var myAlert:Alert;// 按钮单击事件private function Btn_Click():void{myAlert = Alert.show("确认执行此操作吗?", "提示框",Alert.YES | Alert.NO, this, AlertListener, null, Alert.YES);}// 对话框侦听事件private function AlertListener(e:CloseEvent):void{// 判断对话框中被单击的按钮if(e.detail == Alert.YES){lbText.text = "您按了确认按钮。";}else{lbText.text = "您按了取消按钮。";}}]]></mx:Script><mx:Label id="lbText" /><mx:Button click="Btn_Click();" label="提示框"  x="77" y="50" fontSize="12"/>
</mx:Application>

mx.controls.Alert.show(text:String="", title:String="", flags:uint=4, parent:Sprite=null, closeHandler:Function=null, iconClass:Class=null, defaultButtonFlag:uint=4, moduleFactory:IFlexModuleFactory=null):Alert

弹出 Alert 控件的静态方法。在 Alert 控件中选择一个按钮或按下 Esc 键时,将关闭该控件。

text 在 Alert 控件中显示的文本字符串。此文本将在警告对话框中居中显示。

title 标题栏中显示的文本字符串。此文本左对齐。

flags Alert 控件中放置的按钮。有效值为 Alert.OKAlert.CANCELAlert.YESAlert.NO。默认值为Alert.OK。使用按位 OR 运算符可显示多个按钮。例如,传递(Alert.YES | Alert.NO) 显示“是”和“否”按钮。无论按怎样的顺序指定按钮,它们始终按照以下顺序从左到右显示:“确定”、“是”、“否”、“取消”。

parent Alert 控件在其上居中的对象。

closeHandler 按下 Alert 控件上的任意按钮时将调用的事件处理函数。传递给此处理函数的事件对象是 CloseEvent 的一个实例;此对象的detail 属性包含Alert.OKAlert.CANCELAlert.YESAlert.NO 值。

iconClass 位于 Alert 控件中文本左侧的图标的类。

defaultButtonFlag 指定默认按钮的位标志。您可以指定一个值,并且只能是Alert.OKAlert.CANCELAlert.YESAlert.NO 中的一个值。默认值为Alert.OK。按 Enter 键触发默认按钮,与单击此按钮的效果相同。按 Esc 键触发“取消”或“否”按钮,与选择相应按钮的效果相同。

moduleFactory 此 Alert 应在其中查找其嵌入字体和样式管理器的 moduleFactory。

6.3 自定义警告框的按钮标签

默认情况下,警告框的按钮标签是英文的。通过Alert类,可以设置其按钮标签,使其成为中文。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[import mx.controls.Alert;import mx.events.CloseEvent;// 按钮单击事件private function Btn_Click():void{// 设置对话框的按钮文字描述Alert.yesLabel = "是";Alert.noLabel = "否";Alert.cancelLabel = "取消";// 弹出对话框Alert.show("确认执行此操作吗?", "提示框",Alert.YES | Alert.NO | Alert.CANCEL);}]]></mx:Script><mx:Label id="lbText" /><mx:Button click="Btn_Click();" label="提示框"  x="77" y="50" fontSize="12"/>
</mx:Application>

6.4 设置提示框的文本大小

6.3节中的示例可以看出,在警告框设置成中文后,文字较小而且模糊不清。要解决这个问题,就需要通过样式来设置按钮标签文本的大小。使用Alert类,还可以设置警告框的宽度和高度。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><!-- 设置对话框的样式 --><mx:Style>Alert{font-size:14px;}</mx:Style><mx:Script><![CDATA[import mx.controls.Alert;// 创建Alert对象private var myAlert:Alert;// 按钮单击事件private function Btn_Click():void{myAlert = Alert.show("这是一个警告框!", "警告框");// 设置对话框的宽度和高度myAlert.width = 200;myAlert.height = 150;}]]></mx:Script><mx:Button click="Btn_Click();" label="警告框"  x="77" y="50" fontSize="12"/>
</mx:Application>

6.5 设置提示框的图标

默认情况下,警告框是没有任何图标的。但是,可以通过Alert类的参数,自定义一个警告框的图标。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[import mx.controls.Alert;// 嵌入图片资源[Embed(source="assets/alertIcon.png")][Bindable]public var alertIcon:Class;private function Btn_Click():void{Alert.show("这是一个警告框!", "警告框", Alert.OK, null, null, alertIcon);}]]></mx:Script><mx:Button click="Btn_Click();" label="警告框"  x="77" y="50" fontSize="12"/>
</mx:Application>

七、进度条的设计

进度条可以用来显示某个任务执行的进度,如文件下载、播放位置等。进度条可以使程序操作界面更加人性化、更加直观。本章将详细讲述Flex中进度条的设计。

7.1创建ProgressBar控件

创建一个ProgressBar控件是相当容易的,只需要把控件拖放到设计窗口,并设置其属性Source即可。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[private function LoadImage():void{// 加载图片img.load("assets/test.jpg");}]]></mx:Script><mx:Button x="10" y="10" label="加载图片" fontSize="12" click="LoadImage()"/><mx:ProgressBar x="10" y="42" source="img"/><mx:Image id="img" x="10" y="78"/>
</mx:Application>

7.2 设置进度条的标签

默认情况下,进度条的标签显示的是英文描述。通过其属性Label的值,可以设置为中文显示。在标签属性中,有一些特殊字符代表了特殊的含义。这些特殊字符表示的含义如下所示。

?%1:已经加载的字节数。

?%2:字节总数。

?%3:加载的百分比。

?%%:百分比符号(%)。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"><mx:Script><![CDATA[private function LoadImage():void{// 加载图片img.load("assets/test.jpg");}private function InitProgBar():void{// 设置进度条文字说明progBar.label = "图片大小:%2 字节,已加载: %1 字节 , 加载百分比:%3%%";}]]></mx:Script><mx:Button x="10" y="10" label="加载图片" fontSize="12" click="LoadImage()"/><mx:ProgressBar id="progBar" x="10" y="42" source="img" creationComplete="InitProgBar()"/><mx:Image id="img" x="10" y="78"/>
</mx:Application>

flex----其他交互设计相关推荐

  1. 交互设计软件Framer X for mac软件测评

    Framer X for mac号称是一款突破规则的产品,能够更好地融合设计和开发,Framer X mac破解版没有内置编辑器,只有设计面板,使用React和TypeScript 写UI组件,功能方 ...

  2. 交互设计:非原型,不设计

    在风起云涌的互联网浪潮中,产品迭代的速度越来越快.随着用户需求的激增,也不断带来了对设计师能力要求的提高.初入交互设计领域几年来,明显发现可视化的内容远比文档的更易于被用户(以至我们的客户)所接受,就 ...

  3. 【css】星巴克交互设计

    一.业务网站展示 二.设计思路 交互性:简洁明了的展示商品页面,亮点在于:滑动切换商品,变换图片底部颜色,实现视觉冲击. 三.html规范 <!DOCTYPE html> <html ...

  4. sketch如何做设计稿交互_交互设计师是做什么的——交互设计的历史、现状和未来...

    交互设计是定义.设计人造物系统的行为的设计领域,它定义了两个或者多个互动的个体之间交流的内容和结构,使之互相配合,达成某种目的.--百度百科 交互设计师是以人的需求为导向,理解用户的期望和需求的同时, ...

  5. Hover States - 有趣的用户界面及交互设计

    Hover States 一组新潮的和有趣的用户界面和交互设计的集合.Hover States 的目标是要成为设计师和开发人员灵感来源,向人们展示目前人们正在做的各种网站中令人惊奇的效果.他们认为交互 ...

  6. 交互设计实用指南系列 – 我们眼中的交互设计

    交互设计(Interaction Design, 缩写 IxD 或者 IaD),是定义.设计人造系统的行为的设计领域.人造物,即人工制成物品,例如,软件.移动设备.人造环境.服务.可佩带装置以及系统的 ...

  7. 数据仓库中宽表的设计原则_实际项目中交互设计原则的运用

    在实际项目中设计交互行为方式的时候,我们该怎么去运用的这些交互设计原则呢? 通常我们在设计过程中,会提到设计要满足一定的交互设计原则,而对于一名交互设计师来说,原则是在设计过程中遵循的一种大众认可的, ...

  8. sketch如何做设计稿交互_做交互设计不可不知的十大原则

    交互界最知名的"尼尔森十大可用性原则",或者称之为"尼尔森十大交互原则",这是尼尔森(Jakob Nielsen)博士于1995年提出的非常经典的十大准则,虽然 ...

  9. firebird 3.0 开发者指南_手机端空间级AR交互设计指南

    AR改变了世界的显示方式,给人们带来认知和交互的全新体验. 人们不仅可以通过触屏.语音,而是可以使用手势.肢体等多种模态与机器(如手机.AR眼镜等)进行交互.而机器的输出更是现实和虚拟的叠加融合. A ...

最新文章

  1. 在日志文件中输出当前时间
  2. mysql分析表锁,MySQL锁分析和监控
  3. 喜报!第四范式助力宁波银行荣获2020 IDC数字化转型大奖
  4. iframe内部内容在浏览窗口位置固定的问题
  5. 英雄联盟微信登录服务器怎么回事,英雄联盟微信怎么登陆 lol微信登录功能开放大区一览...
  6. android返回页面代码实现,Intent携带信息返回上一个界面实现基本信息的设置
  7. bower安装使用入门详情
  8. 软件测试过程中的度量与分析
  9. android p官方铃声,Android 铃声播放
  10. c编程技巧——获取可用的处理器(CPU)核数
  11. UITableViewCell delete button 上有其它覆盖层
  12. 作文 进入中职计算机班,我的中职生活作文(精选5篇)
  13. 视频源与广播电视制式
  14. C语言中 abs、cabs、labs和fbs的区别
  15. 计算机工程学院迎新生,计算机工程学院举办“青春相约,梦想同行”迎新晚会...
  16. python 安装失败 errorcode 2203_win10系统安装软件出现the error code is 2203错误怎么办...
  17. oracle12c关闭pdb,oracle 12c pdb启动与关闭
  18. vue组件挂载与html加载区别,vue中的挂载是什么意思?
  19. UML与软件建模之面向对象的软件建模概述
  20. 支小蜜人脸识别消费系统实现校园、家长、学生三方共赢

热门文章

  1. oracle中通过distinct为什么过滤不了重复的数据_spark | 手把手教你用spark进行数据预处理...
  2. java复制重命名,JAVA操作文件的复制和重命名失败的原因
  3. 利用Octave解线性方程组
  4. 15.立体几何——立体,基本概念,随机点立体图,立体估计深度_2
  5. const 指针_C语言学习日记(11)——const与指针
  6. 2017.10.16 水管局长水管局长数据加强版 思考记录
  7. 【英语学习】【WOTD】pungle 释义/词源/示例
  8. 数据库期末复习知识点:(仅供参考)
  9. python调用程序call_call在Python中改进数列的实例讲解
  10. 调用另一个cpp的变量_Il2Cpp Internals: 托管调用栈