页面交互设计之其他交互设计flex
晓晓 2018-03-15 来源 :网络 阅读 786 评论 0

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

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

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

一、数字选择器

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

1 创建NumericStepper控件

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

页面交互设计之其他交互设计flex

二、日期显示

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

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

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

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

页面交互设计之其他交互设计flex

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

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

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

页面交互设计之其他交互设计flex

2.3 使用日期类

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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属性的值可以设定为诸如MM、DD、YY和YYYY等字符的组合。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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="//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>

页面交互设计之其他交互设计flex

 三、 加载外部SWF文件

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

 3.1创建SWFLoader控件

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

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

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

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

四、 加载图像

在Flex应用程序中,也可以实现加载图像的功能。Flex支持绝大部分主流的图片格式,包括GIF、JPEG、PNG、SVG等等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="//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"/>

页面交互设计之其他交互设计flex

5.2 自定义面板显示的颜色

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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>

页面交互设计之其他交互设计flex

5.3 自定义面板显示的标签

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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="//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="//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.OK、Alert.CANCEL、Alert.YES 和Alert.NO。默认值为Alert.OK。使用按位 OR 运算符可显示多个按钮。例如,传递(Alert.YES | Alert.NO) 显示“是”和“否”按钮。无论按怎样的顺序指定按钮,它们始终按照以下顺序从左到右显示:“确定”、“是”、“否”、“取消”。

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

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

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

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

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

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

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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>

页面交互设计之其他交互设计flex

6.4 设置提示框的文本大小

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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>

页面交互设计之其他交互设计flex

 

6.5 设置提示框的图标

 

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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

 

七、进度条的设计

 

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

 

7.1创建ProgressBar控件

 

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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>

页面交互设计之其他交互设计flex

 

7.2 设置进度条的标签

 

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

 

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

?%2:字节总数。

?%3:加载的百分比。

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="//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

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标设计创作之交互设计频道!


本文由 @晓晓 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程