`
nianshi
  • 浏览: 420609 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex3 快速入门(6):构建简单的用户界面 使用控件

    博客分类:
  • Flex
阅读更多

 

使用控件

在 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>

 

结果

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码”。


使用基于按钮的控件

组件的 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>

 

结果

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码”。


使用基于列表的控件

基于列表的控件是在其继承层次结构内的某些点上扩展 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>

分享到:
评论

相关推荐

    flex快速入门“flex3_quickstart”

    本文旨在为初学者提供一个全面的Flex3快速入门指南,涵盖从基础编码到高级用户界面构建的关键知识点。 ### 一、使用MXML和ActionScript进行编码 #### MXML:用户界面布局的XML语言 MXML(Flex Markup Language)...

    flex精通 flex入门

    在实际应用中,这些控件的组合使用能构建出各种复杂的用户界面。例如,在上述示例代码中,我们看到一个评论表单的实现,包括了Label、Text、TextInput和TextArea的使用。Label用于提示,TextInput和TextArea用于获取...

    Flex 入门.pdf

    它基于AS3(ActionScript 3)语言,允许开发者使用MXML(Flex的标记语言)和ActionScript进行编程,以构建高性能的用户界面。 - Flex提供了丰富的UI组件库,包括容器和控件,以及用于数据管理和数据服务的类库。...

    flex 入门之CRUD

    - 使用MXML和Flex组件设计基本的用户界面,包括表单、列表和其他控件。 3. **连接数据库**: - 利用ClearDataBuilder设计数据库模型。 - 使用BlazeDS与数据库建立连接。 4. **实现CRUD功能**: - 创建(Create)...

    Flex 入门教学材料

    MXML简化了用户界面的设计,让开发者能以XML格式定义控件、布局和属性。 三、Flex SDK与Flex Builder 1. Flex SDK:是一套免费的开发工具包,包含了编译器、Flex框架库和命令行工具。开发者可以直接使用SDK进行Flex...

    Flex 3开发指南

    - **数据绑定**:Flex 3支持双向数据绑定,能够自动同步用户界面元素与模型数据之间的值,简化了数据管理过程。 - **皮肤系统**:Flex 3引入了一套新的皮肤系统,允许开发者自定义UI组件的外观,实现高度个性化的...

    Flex入门文档 -王一松

    - **UI控件介绍**:Flex提供了丰富的UI控件库,如按钮、文本框等,这些控件可以帮助开发者快速构建用户界面。这部分内容会详细介绍这些控件的基本用法及其属性设置。 #### 5. ActionScript 3 - **脚本语言基础**:...

    Flex入门学习资料(自己整理)

    另一本关于CSS的参考资料,可能更深入地探讨了Flex中的高级CSS技巧,如动画、渐变、阴影和3D转换等,以帮助开发者实现更生动和交互性的用户界面。 总的来说,这套Flex入门学习资料覆盖了从基础到进阶的多个方面,...

    《Flex完全自学入门手册》

    - **Coldfusion**:使用Coldfusion服务器为Flex程序提供数据支持,但在中国较少使用。 - **FlexDataService**:提供了一整套完整的后台服务,包括动态编译MXML文件等功能,适合于复杂的数据管理和应用程序开发。 -...

    Flex入门实例教程

    ### Flex入门实例教程知识点概述 #### 一、Flex简介 - **定义与特点**:Flex是一种开源框架,用于构建高质量的Web应用程序,并可跨浏览器、操作系统和设备进行部署。它结合了HTML、JavaScript和Flash Player的功能...

    arcgisviewer flex下地图入门实例

    6. **个性化界面**:使用MXML和CSS自定义应用的外观和布局。ArcGIS Viewer for Flex也支持主题,可以快速更改界面样式。 7. **部署和测试**:完成开发后,将应用打包并部署到Web服务器。确保你的ArcGIS Server服务...

    Flex3/4 Cairngorm框架 入门 源码 主要是登陆注册功能。

    2. **视图(View)**:展示用户界面,通常由Flex组件构成,如Button、Label等。视图并不直接处理业务逻辑,而是通过事件与控制器通信。 3. **控制器(Controller)**:负责处理视图和模型之间的交互。在Cairngorm中...

    Flex入门介绍(PDF)

    标题:Flex入门介绍 描述与知识点: Flex是一个强大的开源框架,用于构建高性能的富互联网应用(RIA)。由Adobe系统开发,Flex使用MXML和ActionScript编程语言,允许开发者创建复杂且交互性强的应用程序,这些应用...

    flex英文帮助文档(非常详细)

    主要内容覆盖了从 Flex 4.5 的基本介绍、应用开发流程到用户界面构建、数据驱动组件使用等多个方面。 #### 详细知识点解析 ##### 1. 引入 Flex 4.5 - **Flex 4.5简介**:介绍了 Flex 4.5 的新功能和改进之处。 - ...

    Flex从入门到精通

    Flex是基于MXML和ActionScript的开源框架,主要用于构建具有丰富用户界面的Web应用程序。它提供了组件库,可以快速创建可自定义的UI元素,如按钮、表格、图表等。Flex应用程序通常通过Flash Player或Adobe AIR在...

    FLEX入门及集成其他框架教程

    结合Flex前端,能够快速构建出高效的数据密集型应用。 4. **Cairngorm架构**:Cairngorm是一种基于MVC设计模式的架构框架,专为Flex应用程序设计。它帮助开发者更好地组织代码结构,提高开发效率。 #### 五、实战...

    flex 入门实例教程

    8. **基本组件**:如按钮、文本框等,是构成用户界面的基础。 9. **多页面(States)**:允许应用程序根据状态的不同显示不同的界面布局。 10. **DataGrid控件**:用于展示表格形式的数据。 11. **Tree控件**:用于...

    flex 入门必看资料

    3. **Flex组件库**: 包含了各种预定义的UI组件,如按钮、面板、列表等,方便快速构建界面。 4. **Flex Builder/IDE**: 开发Flex应用的集成开发环境,提供了代码提示、调试和预览等功能。 5. **事件处理**: 学习...

    Flex基础入门与开发实例

    ### Flex基础入门与开发实例知识点概述 #### 一、Flex简介 - **定义**: Flex是一种开源框架,由Adobe系统提供支持,主要...通过学习这些内容,不仅可以快速上手Flex开发,还能够掌握如何利用Flex构建复杂的应用程序。

    flex精通 flex接口

    3. **数据绑定**:获取的数据可以绑定到Label、DataGrid、TextArea和LinkButton等控件上,以便在用户界面中展示。 通过以上步骤,不仅可以创建出功能完整的Flex应用程序,还能学习到如何有效地管理和显示远程数据,...

Global site tag (gtag.js) - Google Analytics