`
天梯梦
  • 浏览: 13731357 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

构建简单的用户界面

阅读更多

使用控件

在 Adobe® Flex™ 模型–视图设计模式下, 用户界面组件代表视图。MXML 语言支持两种用户界面组件类型: 控件和容器。容器是包含控件和其他容器的屏幕的矩形区域。控件是表单元素, 如按钮、文本字段和列表框。

 

存在许多类型的 Flex 控件时, 此 QuickStart 描述三种最常见的控件: 基于文本的控件、基于按钮的控件和基于列表的控件。

  • 使用基于文本的控件
  • 使用基于按钮的控件
  • 使用基于列表的控件
  • 使用基于文本的控件基于文本的控件用于显示文本和/或接收来自用户的文本输入。

在 Flex 中提供的基于文本的控件有 Label、Text、TextArea、TextInput 和 RichTextEditor 控件。TextInput 和 TextArea 组件既可以显示文本又可以接受用户输入, 而 Label 和 Text 控件仅用于显示文本。

 

Text 和 TextArea 控件可以显示跨多行的文本, 而 Label 和 TextInput 控件用于显示单行文本。

使用 RichTextEditor 控件可以输入文本、编辑文本和设置文本格式。用户通过使用位于 RichTextEditor 控件底部的子控件, 应用文本格式和 URL 链接。

 

所有基于文本的组件都有一个 text 属性, 可用来设置要显示的文本。

 

示例

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    viewSourceURL="src/ControlsTextBased/index.html"
    layout="horizontal" width="380" height="320"
    horizontalAlign="center" verticalAlign="middle"
>
    <mx:Panel
        title="Leave a comment"
        paddingBottom="10" paddingTop="10"
        paddingLeft="10" paddingRight="10"
    >
        <mx:Text
            text="Fill out this form to leave us a comment:"
            width="100%"
        />           
        <mx:Label text="Name:" />
        <mx:TextInput id="userName" />
        <mx:Label text="Email:" />
        <mx:TextInput id="userEmail" />
        <mx:Label text="Comment:" />
        <mx:TextArea id="userComment" width="100%" />
    </mx:Panel>
</mx:Application>
 


使用基于按钮的控件

 

组件的 Button 系列包括 Button、LinkButton、CheckBox、RadioButton 和 PopupButton 控件。

 

Button 控件是一个常用的矩形按钮。Button 控件看起来就像被按下一样, 在其面上有一个文本标签、一个图标或全部两者。可以选择为几个 Button 状态的每一个指定图形外观。可以创建一个普通 Button 控件或一个切换 Button 控件。只要在选中之后按下鼠标按钮, 普通 Button 控件就会保持其被按下的状态。切换 Button 控件直到您又一次选中它之后, 才会保持被按下的状态。

 

当用户选中控件时, 按钮通常使用事件监听器来执行操作。 当用户在 Button 控件上单击鼠标, 且 Button 控件被启用时, 它会发出一个 click 事件和一个 buttonDown 事件。

 

LinkButton 控件创建一个支持可选图标的单行超文本链接。 它根本上是一个没有边框的 Button 控件。 可以使用 LinkButton 控件在 Web 浏览器中打开 URL。

 

CheckBox 控件是一个常用的图形控件, 它可以包含一个复选标记或者未被选中 (空)。 在需要收集一组并不相互排斥的 true 或 false 值的地方, 可以使用 CheckBox 控件。 可以给 CheckBox 控件添加文本标签, 并将文本标签置于复选框的左侧、右侧、顶部或底部。 Flex 会裁剪 CheckBox 控件的标签以适合控件的边界。

 

使用 RadioButton 控件, 用户可以在一组相互排斥的选项内作单一选择。RadioButtonGroup 控件由具有相同组名的两个或更多 RadioButton 控件组成。该组可以指由 <mx:RadioButtonGroup> 标签创建的组。用户一次仅选择该组的一个成员。选择某个未选中的组成员会取消选中该组内当前选中的 RadioButton 控件。

 

PopUpButton 控件给 Button 控件添加一个灵活的弹出控件界面。它包含一个主按钮和一个辅助按钮, 这个辅助按钮也称为弹出按钮, 当用户单击该弹出按钮时, 它会弹出任何 UIComponent 对象。PopUpButton 控件的一个常见的用途是让弹出按钮打开 List 控件或 Menu 控件, 这两个控件更改主按钮的功能和标签。

 

示例

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    viewSourceURL="src/ControlsButtonBased/index.html"
    layout="absolute" width="460" height="400"
>
    <mx:Script>
        <![CDATA[
            import flash.events.MouseEvent;
            import mx.controls.Alert;
           
            private const NL:String = "\r";
           
            private function submitButtonClickHandler (event:MouseEvent):void
            {
                var userDetails:String = "You submitted the following details:" + NL + NL;
                userDetails += "Name: " + userName.text + NL;
                userDetails += "Email: " + userEmail.text + NL;
                userDetails += "Hide email? " + (hideEmail.selected ? "Yes" : "No") + NL + NL;
                userDetails += "Comment:" + NL + NL + userComment.text;
               
                Alert.show (userDetails);   
            }
           
            private function emailButtonClickHandler (event:MouseEvent):void
            {
                var msg:String = "You can use the navigateToURL() method to open a URL"
                msg += " using a call similar to the following:\r\r";
                msg += "navigateToURL (new URLRequest (&apos;mailto:comments@somewhere.com&apos;));";
               
                Alert.show (msg);
            }
                   
        ]]>
    </mx:Script>
   
    <mx:Panel
        title="Leave a comment"
        left="10" top="10" right="10" bottom="10"
        layout="absolute"
    >
        <mx:Text
            text="Fill out this form to leave us a comment:"
            width="250" x="10" y="10" fontWeight="bold"
        />           
        <mx:Label text="Name:"  x="10" y="38"/>
        <mx:TextInput id="userName" y="36" right="10" left="90"/>
        <mx:Label text="Email:"  x="10" y="68"/>
        <mx:TextInput id="userEmail" y="66" right="10" left="90"/>
        <mx:Label text="Comment:"  x="10" y="129"/>
        <mx:TextArea id="userComment" left="10" right="10" height="109" bottom="40"/>
       
        <mx:CheckBox
            id="hideEmail"
            y="103" left="90"
            label="Hide my email address"
            selected="true"
        />
       
        <mx:LinkButton
            id="emailButton"
            y="272" horizontalCenter="0"
            label="Having trouble? Email us!"
            click="emailButtonClickHandler(event);"
        />
       
        <mx:ControlBar x="120" y="258" horizontalAlign="center">
            <mx:Button
                id="submitButton" label="Submit"
                click="submitButtonClickHandler(event);"
            />
        </mx:ControlBar>
   
    </mx:Panel>
</mx:Application>
 

使用基于列表的控件

 

基于列表的控件是在其继承层次结构内的某些点上扩展 ListBase 类的那些控件。它们包括 ComboBox、List、HorizontalList、DataGrid、Tile、Menu 和 Tree 控件。

 

几个 Flex 框架组件 (包括所有基于列表的控件) 表示来自某个数据提供程序的数据, 数据提供程序是一个包含控件所需数据的对象。例如, 一个 Tree 控件的数据提供程序确定树的结构和分配给每个树节点的相关联的数据, 而一个 ComboBox 控件的数据提供程序确定控件的下拉列表中的项目。

 

注意: 许多标准控件 (包括 ColorPicker 和 MenuBar 控件) 也从数据提供程序获取数据。显示应用程序数据的控件有时被称为数据提供程序控件。有关使用数据提供程序的详细信息, 请参阅 Flex 2 开发人员指南*中的“使用数据提供程序和集合”。

 

您可以使用两种方法设置组件的数据提供程序: 第一种方法是通过将 Array 或 Collection 定义为取得数据提供程序的控件的子标签, 在线上在 MXML 中定义数据提供程序。这种方法具有实施快速的优点, 适合与静态数据一起使用及用于原型设计。第二种方法是使用数据绑定将控件绑定到使用 ActionScript 定义的现有 Array 或 Collection。这后一种方法用于显示由服务器端调用引起的数据及用于绑定到在 ActionScript 中创建的数据结构。这种方法也是这两种方法中较有可伸缩性的。

 

下面的示例说明这两种方法。

 

示例

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    viewSourceURL="src/ControlsListBased/index.html"
    layout="horizontal" width="460" height="360"
>

    <mx:Script>
        <![CDATA[
            import flash.events.MouseEvent;
            import mx.controls.Alert;
            import mx.collections.ArrayCollection;
           
            private const NL:String = "\r";

            // A data provider created by using ActionScript
            [Bindable]
            private var subscriptions:ArrayCollection =
                new ArrayCollection
                (
                    [
                        {data:0, label:"Print"},
                        {data:1, label:"Website"},
                        {data:2, label:"RSS (text)"},
                        {data:3, label:"Podcast"}
                    ]
                );

            private function submitButtonClickHandler(event:MouseEvent):void
            {
                var userDetails:String = "You submitted the following details:" + NL + NL;
                userDetails += "Name: " + userName.text + NL;
                userDetails += "Email: " + userEmail.text + NL;
                userDetails += "Site rating: " + userRating.selectedItem.label + NL + NL;
                userDetails += "Subscriptions:";
               
                var selectedSubscriptionItems:Array = userSubscriptions.selectedItems;
                for ( var i:String in selectedSubscriptionItems)
                {
                    // Display the selected subscriptions, separated by commas
                    userDetails += selectedSubscriptionItems[i].label + ", ";
                }
                // Remove the last comma and space from the string we&apos;re displaying
                userDetails = userDetails.substring(0, userDetails.length-2);                
               
                Alert.show ( userDetails );   
            }
           
        ]]>
    </mx:Script>
   
    <mx:Panel
        title="Feedback form" width="99%"
        paddingLeft="10" paddingTop="10" paddingRight="10" paddingBottom="10"
        layout="vertical"
    >
        <mx:Text
            text="Thank you for giving us feedback:"
            width="100%" fontWeight="bold"
        />           
        <mx:Form width="100%">
            <mx:FormItem label="Name:" width="100%">
                <mx:TextInput id="userName" />
            </mx:FormItem>
            <mx:FormItem label="Email:" width="100%">
                <mx:TextInput id="userEmail" />
            </mx:FormItem>
            <mx:FormItem label="Site rating:" width="100%">
                <mx:ComboBox id="userRating" width="100%">
                    <!-- An inline data provider -->
                    <mx:Array>
                        <mx:Object data="0" label="Zero" />
                        <mx:Object data="1" label="One" />
                        <mx:Object data="2" label="Two" />
                        <mx:Object data="3" label="Three" />
                        <mx:Object data="4" label="Four" />
                    </mx:Array>
                </mx:ComboBox>       
            </mx:FormItem>
            <mx:FormItem label="Subscriptions:" width="100%">
                <mx:List
                    id="userSubscriptions" rowCount="3"
                    allowMultipleSelection="true" width="100%"
                    dataProvider="{subscriptions}"
                />
            </mx:FormItem>
        </mx:Form>
       
        <mx:ControlBar x="120" y="258" horizontalAlign="center">
            <mx:Button
                id="submitButton" label="Submit"
                click="submitButtonClickHandler(event);"
            />
        </mx:ControlBar>
   
    </mx:Panel>
</mx:Application>

 

 

分享到:
评论

相关推荐

    VueJS API文档 Vue是一套用于构建用户界面的渐进式JavaScript框架

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合。Vue.js是...

    Python GUI开发实战:使用`tkinter`模块构建图形用户界面

    本文将详细介绍如何使用tkinter模块构建图形用户界面,包括窗口管理、布局设计、事件处理以及常用控件的使用。 通过本文的详细介绍和代码示例,您应该能够掌握Python中tkinter模块的基本使用方法,包括创建窗口、...

    构建可缩放用户界面symbian 界面

    ### 构建可缩放用户界面:Symbian 界面 #### 1. 引言 本文档旨在介绍在Symbian操作系统上构建既便携又可伸缩的用户界面的最佳实践。随着移动设备的多样化发展,创建一个能够适应不同屏幕尺寸、分辨率以及输入方法...

    使用Android和XML构建动态用户界面

    本教程介绍一个简单的架构来为 Android 设计类似的应用程序 — 允许非编程员从移动用户收集数据的动态用户界面。在本教程中,您将创建一个拥有服务器端和移动端的示例表单引擎。 ...

    第十一章GUI图形用户界面编程.pdf

    Tkinter 库提供了大量的组件(Widget),可以用于构建复杂的图形用户界面。 Tkinter 库的优点是易于使用,适合小型的 GUI 程序编写,也特别适合初学者学习 GUI 编程。 GUI 编程的核心步骤包括: 1. 创建应用程序主...

    Matlab用户界面设计:构建您的第一个交互式应用

    在这篇文章中,我们将深入探讨如何在Matlab中创建一个简单的用户界面(UI)。用户界面是任何软件应用的重要组成部分,它不仅影响用户体验,还决定了用户如何与软件进行交互。Matlab提供了多种工具来帮助开发者设计和...

    openInula是一款用于构建用户界面的 JavaScript 库,提供响应式 API 帮助开发者简单高效构建web页面

    openInula 是一款用于构建用户界面的 JavaScript 库,提供响应式 API 帮助开发者简单高效构建 web 页面,比传统虚拟 DOM 方式渲染效率提升30%以上,同时 openInula 提供与 React 保持一致的 API,并且提供5大常用...

    使用DevExpress构建多文档界面设计

    在本文中,我们将深入探讨如何使用DevExpress控件库来构建一个功能丰富的多文档界面(MDI)设计,这种设计类似于现代浏览器的界面布局。DevExpress是一款强大的.NET开发工具,提供了丰富的控件和组件,使得开发者...

    java用户界面程序

    JavaFX是Oracle公司推出的下一代用户界面工具包,它提供了丰富的组件、强大的2D/3D图形处理能力以及CSS样式支持,使得创建现代、美观的应用变得简单。JavaFX可以通过Java、Kotlin、Scala等语言进行开发,其API设计...

    Turbo C用户界面程序设计

    Turbo C支持标准输入输出(stdio)库,包括printf和scanf函数,这是构建基本用户界面的基础。例如,printf用于在控制台上打印信息,而scanf则可以从用户那里获取输入。通过巧妙地组合这两个函数,可以创建简单的交互...

    openInula是一款用于构建用户界面的JavaScript库,提供响应式API帮助开发者简单高效构建web页面

    openInula 是一款用于构建用户界面的 JavaScript 库,提供响应式 API 帮助开发者简单高效构建 web 页面,比传统虚拟 DOM 方式渲染效率提升30%以上,同时 openInula 提供与 React 保持一致的 API,并且提供5大常用...

    mfc编写的用户界面多线程的小例子

    MFC为Windows应用程序提供了丰富的控件和类库,如对话框、菜单、工具栏等,帮助开发者快速构建用户界面。在MFC中,CWinApp类是应用程序的主入口点,CWnd类是所有窗口对象的基类,而CFrameWnd和CDialog则分别代表MDI...

    Vue框架是一套用于构建用户界面的渐进式框架.txt

    Vue的核心库专注于构建用户界面的视图层,它被设计为可以自底向上逐层应用,这种设计理念让它成为了一个轻量级且简单易用的框架。由于其低学习成本,开发者可以更快地掌握Vue,并且迅速投入实际的项目开发中。 Vue...

    轻量级用户界面工具包(中文版).rar

    LWUIT提供了丰富的组件库,使得开发者能够构建出具有现代感的图形用户界面,而无需深入底层代码。这个中文版的开发指导为中国的开发者提供了方便,消除了语言障碍,使其能够更好地理解和应用LWUIT。 LWUIT的主要...

    C#用户界面控件(简单)

    C#中的用户界面控件是构建Windows应用程序的关键组成部分,它们为用户提供交互式的视觉元素,使得开发者可以构建出直观且功能丰富的应用。对于初学者来说,理解并熟练掌握这些控件的功能和用法至关重要。 首先,...

    界面原型构建工具界面原型构建工具

    这些工具帮助设计师快速地设计和测试用户界面(UI)的概念,从而在项目开发的早期阶段就能获得用户反馈,优化设计决策。界面原型可以是低保真度(lo-fi),提供基本的布局和功能概念,也可以是高保真度(hi-fi),...

    java图形用户界面

    Java图形用户界面(GUI...无论是简单的控制台应用升级,还是复杂的商业软件,Java的图形用户界面技术都能满足需求。在实际开发中,结合MVC模式、事件处理和布局管理,开发者可以灵活地构建出符合用户需求的交互式界面。

    React库,这是一个用于构建用户界面(交互式UI)的JavaScript库

    React是一个用于构建用户界面的JavaScript库。 声明的: React使创建交互式UI变得轻松。为应用程序中的每个状态设计简单的视图,React将在数据更改时高效地更新和呈现正确的组件。声明性视图使您的代码更容易预测...

    JAVA的图形用户界面与事件处理

    Java 图形用户界面是 Java 语言中用于构建图形用户界面的技术,包括 AWT(Abstract Window Toolkit)和 Swing 两种主要技术。AWT 是 Java 的一个基本图形用户界面工具包,提供了基本的图形组件,如按钮、标签、...

Global site tag (gtag.js) - Google Analytics