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

Flex3 快速入门(7):构建简单的用户界面 使用容器

    博客分类:
  • Flex
阅读更多

 

使用容器


容器定义 Adobe® Flash® Player 的绘图表面的一个矩形区域。在容器内, 可以定义希望出现在容器内的组件, 包括控件和容器。在容器内定义的组件称为容器的子级。Adobe Flex 提供范围广泛的容器, 从简单的框到面板和表单, 到在子容器之间提供内置导航 的元素 (如折叠式导航器或选项卡式导航器)。

Container 类是所有 Flex 容器类的基本类。 扩展 Container 类的容器添加它们自己的功能以进行子组件布局。

在 Flex 应用程序的根部是称为 Application 容器的单一容器, 它代表整个 Flash Player 绘图表面。此 Application 容器容纳所有其他容器和组件。

提示: 不同的容器支持不同的布局规则, 包括 automatic 和 absolute 定位。关于这一点的详细信息, 请参阅 Flex 组件的定位和布局。

  • 使用布局容器
  • 使用导航器

使用布局容器

使用布局容器可进行用户界面布局。下面的表格描述下面的示例使用的布局容器:

 

名称 描述
 
面板 Panel Panel 容器显示一个标题栏、一个标题、一个边框及其子级。默认情况下, Panel 容器会对子组件进行垂直布局, 并且可以通过将布局属性设置为 "absolute" "horizontal" 来覆盖此设置。
HDividedBox HDividedBox HDividedBox 容器对子组件进行水平布局, 除了在子级之间插入一个可调整的分割线之外, 它与 HBox 容器很相似。 VDividedBox 容器对子组件进行垂直布局, 而且也在子级之间插入一个可调整的分割线。
平铺 Tile

Tile 容器以多行或多列的形式排列其子级。

表单图标 Form Form 容器以标准的表单格式排列其子级。
ApplicationControlBar ApplicationControlBar ApplicationControlBar 容器容纳提供全局导航和应用程序命令的组件, 并可以停靠在 Application 容器的上边缘。
ControlBar ControlBar ControlBar 容器将控件置于 Panel 或 TitleWindow 容器的下边缘。

此外, 该示例使用 Spacer 控件 (它不是一个容器) 来帮助进行界面的布局。

提示: Spacer 控件是用于在自动定位的容器内准确定位元素的一个不可见控件。 在此示例中, Spacer 控件是 ApplicationControlBar 容器中唯一基于百分比的组件。 Flex 调整 Spacer 控件的大小以占据容器中其他组件不需要的所有可用空间。 通过扩展 Spacer 控件, Flex 将 Button 控件推到该容器的右边缘。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    width="525" height="400"
    viewSourceURL="src/LayoutContainers/index.html"
>
    <mx:ApplicationControlBar dock="true">
        <mx:Label
            text="ApplicationControlBar"
            fontFamily="Verdana" fontWeight="bold" fontSize="12"
        />
        <mx:Spacer width="100%"/>
        <mx:Button label="Log out"/>
    </mx:ApplicationControlBar>

    <mx:Panel
        layout="horizontal" title="Panel"
        width="100%" height="100%"
    >
        <mx:HDividedBox width="100%" height="100%">
            <mx:Panel
                width="100%" height="100%"
                headerHeight="0" borderStyle="solid" shadowDistance="0"
            >
                <mx:Label text="Panel (without header)" fontWeight="bold" />                
                <mx:Form>
                    <mx:FormHeading label="First form" />   
                    <mx:FormItem label="Name:">
                        <mx:TextInput width="100"/>
                    </mx:FormItem>
                    <mx:FormItem label="Email:">
                        <mx:TextInput width="100"/>
                    </mx:FormItem>
                </mx:Form>
            </mx:Panel>

            <mx:Panel
                width="100%" height="100%"
                headerHeight="0" borderStyle="solid" shadowDistance="0"
            >               
                <mx:Label text="Panel (without header)" fontWeight="bold" />
                <mx:Form>
                    <mx:FormHeading label="Second form" />   
                    <mx:FormItem label="Name:">
                        <mx:TextInput width="100"/>
                    </mx:FormItem>
                    <mx:FormItem label="Email:">
                        <mx:TextInput width="100"/>
                    </mx:FormItem>
                </mx:Form>
            </mx:Panel>
        </mx:HDividedBox>
       
        <mx:ControlBar horizontalAlign="center">
            <mx:Label text="ControlBar in Panel" fontWeight="bold"/>
            <mx:Spacer width="100%"/>
            <mx:Button label="Prev"/>
            <mx:Button label="Finish"/>   
        </mx:ControlBar>
       
    </mx:Panel>
       
</mx:Application>

结果

 

 

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


使用导航容器

导航器容器控制子级是其他容器的多个子级之间的用户移动或导航。

导航器容器的直接子级必须是容器, 要么是布局容器, 要么是导航器容器。 无法在导航器内直接嵌套控件;控件必须是导航器容器的子容器的子级。

下面的表格描述下面的示例使用的导航器容器:

 

名称 描述
 
面板 Accordion Accordion 容器定义一个子面板序列, 但一次仅显示一个面板。 若要导航容器, 用户会单击与他们需要访问的子面板相对应的导航按钮。 使用 Accordion 容器, 用户可以按任何顺序访问子面板以在表单中前后移动。
HDividedBox TabNavigator TabNavigator 容器创建和管理一组选项卡, 使用它们可在其子级中间导航。 TabNavigator 容器的子级是其他容器。 TabNavigator 容器为每个子级创建一个选项卡。 当用户选中某个选项卡时, TabNavigator 容器会显示相关联的子级。
平铺 ViewStack

ViewStack 导航器容器由彼此堆叠在一起的子容器的一个集合组成, 一次只有一个容器是可见的或活动的。 ViewStack 容器不为用户定义切换当前活动容器的内置机制;您必须使用 LinkBar、TabBar、ButtonBar 或 ToggleButtonBar 控件或自己在 ActionScript 中构建逻辑让用户来更改当前活动的子级。


 

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml " layout="absolute"
    width="550" height="550"
    viewSourceURL="src/NavigationContainers/index.html"
>
    <mx:Panel
        layout="absolute"
        left="10" top="10" right="10" bottom="10" title="Navigators"
    >
        <mx:Accordion width="47.5%" height="200" top="36" left="10">
            <mx:Canvas label="Navigation button 1" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 1"/>
            </mx:Canvas>
            <mx:Canvas label="Navigation button 2" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 2"/>
            </mx:Canvas>
            <mx:Canvas label="Navigation button 3" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 3"/>
            </mx:Canvas>
        </mx:Accordion>
       
        <mx:TabNavigator right="10" width="47.5%" height="200" y="36">
            <mx:Canvas label="Tab 1" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 1"/>
            </mx:Canvas>
            <mx:Canvas label="Tab 2" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 2"/>
            </mx:Canvas>
            <mx:Canvas label="Tab 3" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 3"/>
            </mx:Canvas>
        </mx:TabNavigator>

        <mx:ViewStack
            id="myViewStack"
            width="47.5%" height="200" right="10" bottom="10"
            borderColor="#000000" borderStyle="solid"
        >
            <mx:Canvas label="View 1" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 1"/>
            </mx:Canvas>
            <mx:Canvas label="View 2" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 2"/>
            </mx:Canvas>
            <mx:Canvas label="View 3" width="100%" height="100%">
                <mx:Label x="10" y="10" text="Contents 3"/>
            </mx:Canvas>
        </mx:ViewStack>
       
        <!-- Labels for the various controls -->
        <mx:Label x="10" y="252" text="ButtonBar"/>
        <mx:Label x="10" y="10" text="Accordion"/>
        <mx:Label x="262.5" y="10" text="TabNavigator"/>
        <mx:Label x="262.5" y="252" text="ViewStack"/>
        <mx:Label x="10" y="308" text="ToggleButtonBar"/>
        <mx:Label x="10" y="364" text="LinkBar"/>
        <mx:Label x="10" y="424" text="TabBar"/>

        <!--
            All these navigators use the same dataProvider,
            namely, the myViewStack ViewStack instance.
            Changing the selected view in one will affect
            all the others also. 
        -->       
        <mx:ButtonBar x="10" y="278" dataProvider="{myViewStack}" />
        <mx:ToggleButtonBar x="10" y="334" dataProvider="{myViewStack}" />
        <mx:LinkBar x="10" y="390" dataProvider="{myViewStack}" />
        <mx:TabBar x="10" y="444" dataProvider="{myViewStack}" />

    </mx:Panel>
   
</mx:Application>



分享到:
评论

相关推荐

    flex快速入门“flex3_quickstart”

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

    Flex教程大全 flex快速入门

    本文旨在为初学者提供一个全面的Flex入门指南。 #### 二、MXML基础 MXML是一种用于构建Flex应用程序用户界面的语言。它基于XML标准,使得开发者可以通过简单的标签语法来构建复杂的UI组件。 ##### 1. MXML的基本...

    flex4.0快速入门

    6. **Effect和动画**:Flex 4.0加强了对效果(Effect)和动画的支持,通过Effect类和Animate类,开发者可以轻松添加过渡效果和自定义动画,提升用户界面的动态性。 7. **事件模型**:Flex 4.0的事件模型基于观察者...

    Flex从入门到精通源代码

    7. **图形和动画**:使用Flex制作动态效果和图形,可能包括基本的动画制作和DisplayObject容器的使用。 8. **应用程序结构**:讲解MVC(模型-视图-控制器)或其他设计模式在Flex开发中的应用,帮助组织和管理代码。...

    Flex快速入门教教程

    MXML则是一种声明式语言,用于构建用户界面,它允许开发者以XML的形式定义组件、布局和属性,使得UI设计更加直观。 在Flex中,组件是构建应用程序的基本单元。Flex提供了一系列预定义的组件,如按钮、文本框、列表...

    flex入门到精通

    理解如何使用MXML来创建用户界面,如布局容器、按钮、文本输入框等组件,以及数据绑定和事件处理。 4. **Flex组件库**:Flex提供了一套丰富的预定义组件,如Button、TextInput、List等,这些都是构建应用程序的基本...

    Flex 入门.pdf

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

    flex 入门之CRUD

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

    Flex cookbook(中文版)+Flex入门到实践

    6. **动画和效果**:讲解如何创建动态效果和动画,提升用户界面的交互体验。 7. **应用生命周期**:讲述Flex应用从启动到关闭的完整过程,以及如何管理组件的状态和生命周期。 8. **项目构建和部署**:介绍如何...

    Flex3中文PDF教程

    3. **组件库**:Flex3提供了一个丰富的组件库,包括按钮、文本框、列表等常见UI元素,这些组件可以快速构建出美观且功能丰富的用户界面。 4. **布局管理器**:Flex3支持各种布局管理器,如垂直布局、水平布局、网格...

    Flex入门-Flex整合Servlet

    Flex入门-Flex整合Servlet Flex是一种用于构建富互联网应用程序(RIA)的技术,它是由Adobe公司推出的,基于ActionScript编程语言和MXML标记语言。Flex的主要目的是提供一个强大的平台,用于创建交互性强、用户体验...

    arcgisviewer flex下地图入门实例

    它使用MXML和ActionScript来设计用户界面和处理业务逻辑,与Flash Player或Adobe AIR运行时环境兼容,因此可以在各种浏览器和操作系统上运行。 接下来,我们进入ArcGIS Viewer for Flex的核心——地图服务。地图...

    Flex Viewer 入门学习 原理

    5. **Menu Control**:菜单控制是Flex Viewer界面中的一个重要元素,允许用户访问和操作Widgets。菜单的构建和管理也是基于配置文件的。 6. **Flex Viewer 生命周期**:当Flex Viewer启动时,Flash Player加载容器...

    flex3语言参考手册

    4. **MXML**:MXML是Flex的标记语言,用于声明式地构建用户界面。掌握MXML的元素、属性和样式,以及如何在MXML中嵌入ActionScript代码。 5. **组件库**:Flex提供了一整套预定义的UI组件,如容器、按钮、文本框等。...

    Flex入门实例教程

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

    Flex从入门到精通

    - **组件**:Flex提供了一系列内置组件,如按钮、文本框等,用于构建用户界面。 - **事件处理**:通过监听特定事件并执行相应的处理函数,实现对用户操作的响应。 #### 四、Flex组件详解 1. **基本UI组件**:包括...

    Flex入门培训资料及PPT

    Flex是Adobe公司开发的一种用于构建富互联网应用(RIA, Rich Internet Applications)的开源框架,它主要基于ActionScript和MXML语言,提供了强大的图形用户界面设计和编程能力。本压缩包包含的“Flex入门培训资料及...

    Flex入门介绍(PDF)

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

    Flex入门基础教程

    2. **技术选型**:使用MXML和ActionScript构建用户界面,并通过网络API获取实时天气数据。 3. **开发步骤**: - 设计UI布局:使用VBox和Label组件展示天气信息。 - 编写ActionScript代码:实现网络请求逻辑,处理...

    Flex 3中文教程.doc

    Flex 3中文教程是针对初学者入门的学习资料,旨在帮助读者快速掌握Flex的基础知识和应用。 在Flex 3中,开发者可以构建交互性强、用户体验丰富的Web应用,包括图形、动画、数据可视化等功能。教程内容可能涵盖了...

Global site tag (gtag.js) - Google Analytics