首页 > flex, flex 控件用法 > flex 3 用户界面定义状态过渡效果如何添加

flex 3 用户界面定义状态过渡效果如何添加

flex 3 用户界面定义状态过渡效果如何添加
看看标题就是说在状态转换的时候中间增加一种效果,
做的时候要注意需要引入一些效果类,然后就是增加<mx:transitions>标签,里面再定义<mx:Transition>标签并且设置 fromState和toState,需要转换的状态从哪个到哪个之间要转换,*代表任意,接着是<mx:Parallel>标签并行效果 和 <mx:Sequence>按顺序播放的效果,这两个里面targets表示要作用的对象,另外target和targets区别是一个和多个对象区别,然后就是<mx:Resize>标签是具体效果标签,还有其它的效果使用另外标签,以上仅是我个人的理解
具体接上篇文章本文例子如下:(可以<mx:Sequence target="{confirm}">把confirm改为loginPanel比较效果有什么不同)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            // 这个效果必须导入 easing 类
            // 而且这个只能用在MXML中.
            import mx.effects.easing.Bounce;
        ]]>

    </mx:Script>
<mx:transitions>
 <mx:Transition fromState="*" toState="*">
             <!-- Parallel effects execute in unison -->
            <mx:Parallel targets="{[loginPanel, registerLink, loginButton, confirm]}">
                <mx:Resize duration="500" easingFunction="Bounce.easeOut"/>
                <!--
                    这里这个效果只作用于对象id的confirm确认密码那里,如果把confirm改为loginPanel是这个登陆效果变化
                -->
                <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>
 <mx:states>
  <mx:State name="Register">
   <mx:SetProperty target="{loginPanel}" name="title" value="注册"/>
   <mx:SetProperty target="{formheading1}" name="label" value="注册表单表头名称"/>
   <mx:AddChild relativeTo="{loginForm}" position="lastChild">
        <mx:FormItem id="confirm" label="确认密码:">

                    <mx:TextInput/>
                </mx:FormItem>
   
   </mx:AddChild>
   <mx:SetProperty target="{registerLink}" name="label" value="返回登陆"/>
   <mx:SetProperty target="{loginButton}" name="label" value="注册"/>
   <mx:SetEventHandler target="{registerLink}" name="click" handler="currentState=''"/>
  </mx:State>
 </mx:states>
 <mx:Panel id="loginPanel" title="初始状态登陆页面" x="82" y="63" width="315" height="210" layout="absolute">
  <mx:Form  id="loginForm">
   <mx:FormHeading label="表单表头名称" id="formheading1"/>
   <mx:FormItem label="用户名:">
    <mx:TextInput/>
   </mx:FormItem>
   <mx:FormItem label="密码:">
    <mx:TextInput/>
   </mx:FormItem>
  </mx:Form>
  <mx:ControlBar>
   <mx:LinkButton label="需要注册" id="registerLink" click="currentState='Register'"/>
   <mx:Spacer width="100%" id="spacer1"/>
   <mx:Button label="登录" id="loginButton"/>
  </mx:ControlBar>
 </mx:Panel>
</mx:Application>

原创文章转载请注明出处:云飞扬IT的blog

本文链接: http://www.ajaxcn.net/archives/158

分类: flex, flex 控件用法 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.