积少成多Flash(10) - Flex 3.0 状态转换(State), 状态转换的过渡效果(State Transition), 自定义鼠标指针

[源码下载]


积少成多Flash(10) - Flex 3.0 状态转换(State), 状态转换的过渡效果(State Transition), 自定义鼠标指针


作者: webabcd


介绍
演示 Flex 3.0 中的转换状态及转换状态中的过度效果,自定义鼠标指针 
  • 状态转换(State) - 对 UI 状态,以某一种编程模型做转换 
  • 状态转换的过渡效果(State Transition) - 设置 UI 状态的转换过程中的过渡效果 
  • 自定义鼠标指针 - 对鼠标指针的样式做自定义设置


在线DEMO
http://www.cnblogs.com/webabcd/archive/2009/11/09/1598980.html


1、演示 State 的应用
State.mxml
<? xml version="1.0" encoding="utf-8" ?>
< mx:Panel  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"  width ="400"  height ="300"
    title
="State (状态的应用)" >

    
< mx:states >
        
< mx:State  name ="state2" >            
               
<!--
                   <mx:AddChild /> - 在指定的关联控件的指定位置新增指定的控件
                       relativeTo - 关联的控件
                       position - 在关联控件的指定位置增加控件
                           关联控件为元素类型则此处可能的值为:before 或 after  
                           关联控件为集合类型则此处可能的值为:firstChild 或 lastChild
                   <mx:SetProperty /> - 设置指定控件的某属性的值
                   <mx:RemoveChild /> - 移除指定的控件
               
-->
            
< mx:AddChild  relativeTo ="{form}"  position ="lastChild" >
                
< mx:FormItem  label ="Label2:" >
                    
< mx:TextInput />
                
</ mx:FormItem >
            
</ mx:AddChild >
            
< mx:SetProperty  target ="{panel}"  name ="title"  value ="状态2" />
            
< mx:RemoveChild  target ="{toggle}" />
                      
            
< mx:AddChild  relativeTo ="{bar}"  position ="firstChild" >
                
<!--
                    设置状态为空,即转换到原始状态
                
-->
                
< mx:LinkButton  label ="转换到状态1"  click ="this.currentState=''" />
            
</ mx:AddChild >
        
</ mx:State >
    
</ mx:states >

    
<!--
        以下为 状态1 的 ui
    
-->
    
< mx:Panel  id ="panel"  title ="状态1" >
        
        
< mx:Form  id ="form" >
            
< mx:FormItem  label ="Label1:" >
                
< mx:TextInput />
            
</ mx:FormItem >
        
</ mx:Form >
        
        
< mx:ControlBar  id ="bar" >                    
            
<!--
                ui 状态转换到名为 state2 的 <mx:State />
            
-->
            
< mx:LinkButton  id ="toggle"  label ="转换到状态2"  click ="this.currentState='state2'"   />
        
</ mx:ControlBar >
    
</ mx:Panel >
    
</ mx:Panel >


2、演示 State Transition 的应用
StateTransition.mxml
<? xml version="1.0" encoding="utf-8" ?>
< mx:Panel  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"  width ="400"  height ="300"
    title
="State Transition (状态过渡的应用)" >
    
    
< mx:Script >
        
<![CDATA[
            
            import mx.effects.easing.Bounce;
            
        
]]>
    
</ mx:Script >
    
    
<!--
        <mx:Transition /> - 用于设置状态转换间的过渡效果
    
-->
    
< mx:transitions >
        
< mx:Transition >
            
< mx:Parallel  targets ="{[panel, toogleTo1, toogleTo2, formItem]}" >
                
< mx:Resize  duration ="500"  easingFunction ="Bounce.easeOut" />
                
< mx:Sequence  target ="{formItem}" >
                    
< 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 >
    
    
<!--
        以下关于状态转换的部分参见 State.mxml
    
-->
    
< mx:states >
        
< mx:State  name ="state2" >            
            
< mx:AddChild  relativeTo ="{form}"  position ="lastChild" >
                
< mx:FormItem  id ="formItem"  label ="Label2:" >
                    
< mx:TextInput />
                
</ mx:FormItem >
            
</ mx:AddChild >
            
            
< mx:SetProperty  target ="{panel}"  name ="title"  value ="状态2" />
   
            
< mx:RemoveChild  target ="{toogleTo2}" />
                      
            
< mx:AddChild  relativeTo ="{bar}"  position ="firstChild" >
                
< mx:LinkButton  id ="toogleTo1"  label ="转换到状态1"  click ="this.currentState=''" />
            
</ mx:AddChild >
        
</ mx:State >
    
</ mx:states >

    
< mx:Panel  id ="panel"  title ="状态1" >
        
        
< mx:Form  id ="form" >
            
< mx:FormItem  label ="Label1:" >
                
< mx:TextInput />
            
</ mx:FormItem >
        
</ mx:Form >
        
        
< mx:ControlBar  id ="bar" >                    
            
< mx:LinkButton  id ="toogleTo2"  label ="转换到状态2"  click ="this.currentState='state2'"   />
        
</ mx:ControlBar >
    
</ mx:Panel >
    
</ mx:Panel >


3、演示如何自定义鼠标指针
Cursor.mxml
<? xml version="1.0" encoding="utf-8" ?>
< mx:Panel  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"  width ="400"  height ="300"
    title
="Cursor 自定义鼠标指针" >
    
      
< mx:Script >
        
<![CDATA[

            import mx.managers.CursorManager;

            // 以 类 的形式引用内嵌资源。(另一种以字符串的形式引用内嵌资源的方式:@Embed('images/logo.png'))
            [Embed(source="images/logo.png")]
            private var customCursor:Class;  
            
            private function cursorChange(e:Event):void
            {
                switch (radioGroup.selectedValue)
                {
                    // 正常时候的鼠标指针
                    case "Normal" :
                        CursorManager.removeAllCursors();
                        break;
                    // 繁忙时,鼠标指针的样式
                    case "Busy" :
                        CursorManager.removeAllCursors();
                        CursorManager.setBusyCursor();
                        break;
                    // 自定义鼠标指针的样式
                    case "Custom" :
                        CursorManager.removeAllCursors();                    
                        CursorManager.setCursor(customCursor);
                    default :
                        break;
                }
            }
                        
        
]]>
    
</ mx:Script >
    
    
< mx:RadioButtonGroup  id ="radioGroup"  change ="cursorChange(event);" />
    
< mx:RadioButton  x ="10"  y ="10"  label ="普通指针"  value ="Normal"  groupName ="radioGroup"  selected ="true" />
    
< mx:RadioButton  x ="10"  y ="36"  label ="繁忙指针"  value ="Busy"  groupName ="radioGroup" />
    
< mx:RadioButton  x ="10"  y ="62"  label ="自定义指针"  value ="Custom"  groupName ="radioGroup" />

</ mx:Panel >


OK
[源码下载]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值