`
michaeltangbin
  • 浏览: 274474 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

PopUpManager添加特效

阅读更多

在使用PoPUpManager的过程中,没发现有什么自带的效果。这让人很遗憾,我以前的解决方案使用组建的showEffect和hiddenEffect。在poP的时候将弹出的组建visible设置成FALSE,通过定时器在设置成true。就有了效果了,呵呵,我这显然是一个很笨重的方法,初学者么,可以理解。

      今天在网上看到一个例子,给PopUpManager添加了特效,倒是没有什么难度,最重要的是学会了一个思路。代码如下。

 

    下面是自定义的效果类。

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();
        }
    }
}

 

主程序

 

<?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>

 弹出窗口

<?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>

 

分享到:
评论
3 楼 emilyHong 2010-06-22  
这个例子很不错哦
2 楼 chinastary 2010-06-11  
如果想往弹出窗口中传递数据的话,应该怎么做呢?
1 楼 lookdd1 2009-03-04  
多谢这个小例子

相关推荐

Global site tag (gtag.js) - Google Analytics