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

Flex 3快速入门(11): 构建简单的用户界面 定义状态过渡

    博客分类:
  • Flex
阅读更多

定义状态过渡


通常在响应用户操作时, 视图状态使您可以改变应用程序的内容和外观。 改变视图状态时, Adobe® Flex® 会同时执行对应用程序的所有可视更改。 由于对视图状态的所有更改会同时发生, 用户会看到应用程序从一种状态跳到另一种状态。

而您可能希望定义一个从一种状态到下一种状态的平滑的可视更改, 在其中更改是在一段时间上发生的。 过渡定义如何使对视图状态的更改看起来像是在屏幕上发生的一样。 过渡是当视图状态更改发生时播放的组合到一起的一种或多种效果。

过渡不会替换效果;即, 您仍可以将单一效果应用到一个组件, 并通过使用一个效果触发器或者 playEffect()方法来调用该效果。

您使用 <mx:Transition> 标签来创建过渡并自定义它, 方法是通过使用其 fromState、 toState 和 effect 属性。 fromState 属性指定当应用该过渡时您要更改的视图状态, toState 属性指定您要更改为的视图状态, 而 effect 属性是对要播放的 Effect 对象的引用。

在过渡中, 可以通过使用 <mx:Parallel> 和 <mx:Sequence> 标签引发并行或按顺序播放的效果。

在下面的示例中, 您定义了一个任何时候状态发生更改都会使用的过渡。 此过渡是由一种并行效果组成的。 并行效果也是一种复合效果, 因为它包含其他效果。 在此示例中, 并行效果包含一个调整大小效果和一个顺序效果。 并行效果的子效果全部在同时运行。

执行调整大小效果会花费 500 毫秒, 且该效果使用一种简易的功能使得在调整大小时该面板会弹出。 顺序效果也是一种复合效果。 与并行效果不同, 顺序效果的子事件按它们被添加的顺序, 一次运行一个。 下面的示例中的顺序效果包含两个模糊效果。 模糊效果会模糊其目标组件并可以用于创建速度感或表示焦点的增益或损失。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml " verticalAlign="middle"
    width="340" height="250"
     viewSourceURL="src/DefiningStateTransitions/index.html"
>
    <mx:Script>
        <![CDATA[
            // You need to import easing classes even if
            // you're going to use them only in MXML.
            import mx.effects.easing.Bounce;
        ]]>

    </mx:Script>

    <!--
        Use the transitions property (array) of
        the Application class to store your transitions.
    -->
    <mx:transitions>
        <!--
            The "*" indicates that the transition should be applied
            to any changes in the view state. You can set either
            property to "" to refer to the base view state.
        -->
       <mx:Transition fromState="*" toState="*">
            <!-- Parallel effects execute in unison -->
            <mx:Parallel targets="{[loginPanel, registerLink, loginButton, confirm]}">
                <mx:Resize duration="500" easingFunction="Bounce.easeOut"/>
                <!--
                    Sequence effects execute in turn. The effects
                    in this sequence will only affect the confirm FormItem.
                -->
                <mx:Sequence target="{confirm}">

                    <mx:Blur duration="200" blurYFrom="1.0" blurYTo="20.0" />           
                    <mx:Blur duration="200" blurYFrom="20.0" blurYTo="1" />           
                </mx:Sequence>
            </mx:Parallel>
        </mx:Transition>
    </mx:transitions>
       
    <!-- The states property of the Application class
         defines the view states. -->
    <mx:states>
    <!--
            The "Register" state is based on the base state.
            All states are based on the base state by default
            so you can leave out the basedOn property.
        -->
        <mx:State name="Register" basedOn="">

            <!-- Add a FormItem component to the form. -->

            <mx:AddChild
                relativeTo="{loginForm}"
                position="lastChild"
                creationPolicy="all"
            >
                <mx:FormItem id="confirm" label="Confirm:">

                    <mx:TextInput/>
                </mx:FormItem>
            </mx:AddChild>
           
            <!-- Set properties on the Panel container and Button control. -->
            <mx:SetProperty target="{loginPanel}"
            name="title" value="Register"/>

           
            <mx:SetProperty target="{loginButton}"
            name="label" value="Register"/>
           
            <!-- Remove the existing LinkButton control. -->

            <mx:RemoveChild target="{registerLink}"/>
           
            <!--
                Add a new LinkButton control to change
                view state back to the login form.
            -->
            <mx:AddChild relativeTo="{spacer1}" position="before">

                <mx:LinkButton label="Return to Login" click="currentState=''"/>
            </mx:AddChild>

        </mx:State>

    </mx:states>

    <mx:Panel
        title="Login" id="loginPanel"
        horizontalScrollPolicy="off" verticalScrollPolicy="off"
    >

    <mx:Form id="loginForm">
        <mx:FormItem label="Username:">
            <mx:TextInput/>

        </mx:FormItem>
        <mx:FormItem label="Password:">
            <mx:TextInput/>
        </mx:FormItem>
    </mx:Form>

   
    <mx:ControlBar>
        <!--
            Use the LinkButton control to change to
            the Register view state.
        -->
        <mx:LinkButton
            label="Need to Register?" id="registerLink"
            click="currentState='Register'"
        />

        <mx:Spacer width="100%" id="spacer1"/>
        <mx:Button label="Login" id="loginButton"/>

    </mx:ControlBar>

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

结果

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

分享到:
评论

相关推荐

    flex快速入门“flex3_quickstart”

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

    Flex入门资料 flex3.0

    2. **MXML和ActionScript**:MXML是一种声明式语言,常用于定义用户界面组件的布局和属性;ActionScript则是面向对象的脚本语言,负责应用程序的业务逻辑和交互处理。两者结合使用,可以实现强大的富互联网应用开发...

    Flex从入门到精通

    Flex的应用程序构建基于组件模型,这意味着你可以使用预定义的UI元素(如按钮、文本框等)来构建用户界面。MXML是一种声明式语言,它允许开发者以XML格式定义界面布局和组件属性。ActionScript则是Flex的编程语言,...

    Flex 入门教学材料

    本教学材料专注于Flex的入门知识,旨在帮助初学者快速掌握Flex的基本概念、开发环境的搭建以及创建简单应用程序的方法。 一、Flex概述 Flex是一个用于构建具有交互性、动态图形和数据集成的Web应用程序的框架。它...

    flex入门教程(比较不错)

    4. **Flex组件库**:Flex提供了一系列预构建的UI组件,如Button、Label、TextInput等,便于快速搭建用户界面。理解这些组件的属性、事件和方法是Flex开发的基础。 5. **Flex构建应用程序**:通过Flash Builder或...

    flex3语言参考手册

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

    flex从入门到精通的源文件

    这个“flex从入门到精通的源文件”包含了学习Flex编程的基础和进阶示例,可以帮助初学者快速掌握Flex的核心概念和技术。 首先,我们来了解Flex的基本构成。Flex主要由以下几个部分组成: 1. **ActionScript**:是...

    flex学习笔记 flex学习总结 flex学习教程

    3. **Flex组件库**:Flex提供了丰富的预定义组件,如Button、Label、Canvas等,可用于快速构建用户界面。理解组件的属性、事件和方法是提升开发效率的关键。 4. **数据绑定**:Flex支持数据绑定,允许视图组件直接...

    flex3权威教程源代码

    总之,“flex3权威教程源代码”是一份宝贵的资源,它不仅可以帮助初学者快速入门Flex3开发,也能让有经验的开发者深入了解Flex3的内部机制,提高开发效率和代码质量。通过逐行分析和实践这些源代码,你将能够掌握...

    flex 3 基本操作帮助手册

    这里会讲解创建第一个Flex项目的步骤,了解MXML和ActionScript 3.0之间的关系,以及如何在MXML文件中定义用户界面元素,如Button、TextInput等。此外,还会介绍Flex组件库,包括基本组件、容器和数据绑定机制。 第...

    Flex3基础教程PPT

    1. **Flex3简介**:Flex3是基于ActionScript3的编程环境,提供了一个强大的MXML标记语言,用于构建用户界面。它支持组件化开发,能够快速创建具有专业外观的图形用户界面。 2. **开发环境**:讲解了如何设置和使用...

    adobe flex例程源码

    4. **组件库**: Flex提供了一套丰富的预定义组件,如Button、Label、TextArea等,用于快速构建用户界面。在源码中,你将看到如何实例化和自定义这些组件。 5. **数据绑定**: Flex支持数据绑定,使得视图层和数据...

    flex4之语法入门

    1. **增强用户体验**:Flex 支持创建高度互动、视觉效果丰富的应用程序,显著提升用户界面的美观度和操作体验。 2. **完善的开发环境**:Adobe 提供了一系列强大的开发工具,如 Flash Builder(后更名为 Flash ...

    FLEX入门实例--------transition,state的综合运用

    在本实例中,我们将深入探讨Adobe Flex中的"transition"(过渡)和"state"(状态)的概念,这两个概念是创建动态且交互性丰富的用户界面的关键元素。Flex是一种用于构建富互联网应用程序(RIA)的开放源代码框架,它...

    Flex从入门到精通PPT

    Flex是一种开源的开发平台,它提供了丰富的用户界面组件库,用于构建跨浏览器、跨平台的交互式应用程序。Flex基于开放标准的Web技术,如HTTP、XML和JavaScript,但使用了更强大的ActionScript编程语言和MXML标记语言...

    flex 入门教程

    ### Flex入门教程知识点详解 #### 1. Flex简介与安装 - **Flex概念**:Flex是一种用于构建跨浏览器、跨平台的丰富互联网应用程序(RIA)的技术。它利用了Adobe Flash Player和Adobe AIR来呈现高性能的应用程序。Flex...

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

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

    Flex 3 A Beginners Guide

    综上所述,《Flex 3: A Beginner's Guide》是一本非常适合初学者入门的教程,不仅涵盖了Flex 3的基础知识,还深入介绍了如何使用MXML、ActionScript等关键技术来构建功能丰富的交互式Web应用程序。此外,本书还提供...

    Flex 3 A Beginner's Guide

    MXML是Flex的标记语言,用于声明式地构建用户界面。通过MXML,你可以轻松地定义组件布局、绑定数据和设置属性。书中的章节可能涵盖MXML的结构、组件库的使用、数据绑定和事件处理机制。 Flex 3 提供了一个组件模型...

    Flex中文帮助

    4. **Flex组件库**:Flex提供了一套丰富的预定义组件,如按钮、文本框、列表等,这些组件可以快速构建复杂的用户界面。理解并熟练使用这些组件是Flex开发的关键。 5. **数据绑定**:Flex中的数据绑定是将视图组件的...

Global site tag (gtag.js) - Google Analytics