给Flex的PopUpManager显示控件添加特效

本文介绍了一种使用Flash和Flex实现的弹窗模糊效果,通过自定义类PopUpEffect来控制显示和隐藏过程中的模糊过渡,适用于创建平滑的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PopUpEffect.as

package 
{
    import flash.display.DisplayObject;
    
    import mx.core.IFlexDisplayObject;
    import mx.effects.Blur;
    import mx.events.TweenEvent;
    import mx.managers.PopUpManager;
    
    
public class PopUpEffect
    {
        
        
public function PopUpEffect()
        {
        }

        
public static function Show(control:IFlexDisplayObject,parent:DisplayObject,modal:Boolean=true):void
        {
            var mShowEffect:Blur
=new Blur();
            mShowEffect.blurXFrom
=255;
            mShowEffect.blurYFrom
=255;
            mShowEffect.blurXTo
=0;
            mShowEffect.blurYTo
=0;
            mShowEffect.target
= control;
            mShowEffect.duration
=300;
            PopUpManager.addPopUp(control,parent,modal);
            PopUpManager.centerPopUp(control);
            mShowEffect.play();
        
        }
        
public static function Hide(control:IFlexDisplayObject):void
        {
            
            var mHideEffect:Blur
=new Blur();
            mHideEffect.blurXFrom
=0;
            mHideEffect.blurYFrom
=0;
            mHideEffect.blurXTo
=255;
            mHideEffect.blurYTo
=255;
            mHideEffect.addEventListener(TweenEvent.TWEEN_END,function(){
                PopUpManager.removePopUp(control);
            });
            mHideEffect.duration
=300;
            mHideEffect.target
=control;
            mHideEffect.play();
        }
    }
}

 

main.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    
<mx:Script>
        
<![CDATA[
            import PopUpEffect;
        ]]
>
    
</mx:Script>
    
<mx:Button label="登陆" horizontalCenter="0" verticalCenter="0">
        
<mx:click>
            
<![CDATA[
                var frmlogin:Login 
=new Login();
                PopUpEffect.Show(frmlogin,
this);
            ]]
>
        
</mx:click>
    
</mx:Button>
</mx:Application>

Login.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow  xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="342" height="172" title="登陆" showCloseButton="true">
    
<mx:Script>
        
<![CDATA[
            import PopUpEffect;
        ]]
>
    
</mx:Script>
    
<mx:Form width="100%">
        
<mx:FormItem label="用户名:">
            
<mx:TextInput/>
        
</mx:FormItem>
        
<mx:FormItem label="密码:">
            
<mx:TextInput displayAsPassword="true"/>
        
</mx:FormItem>
    
</mx:Form>
    
<mx:ControlBar height="43" verticalAlign="middle" horizontalAlign="right">
        
<mx:Button label="确定"/>
        
<mx:Button label="取消">
            
<mx:click>
                
<![CDATA[
                    PopUpEffect.Hide(
this);
                ]]
>
            
</mx:click>
        
</mx:Button>
    
</mx:ControlBar>
    
<mx:close>
        
<![CDATA[
            PopUpEffect.Hide(
this);
        ]]
>
    
</mx:close>
</mx:TitleWindow>

本文转自:http://www.cnblogs.com/henryfan/archive/2009/01/16/1377148.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值