flex查询数据时弹出正在查询,查到数据自动关闭,类似进度条

来源:互联网 发布:和室友网络冲突怎么办 编辑:程序博客网 时间:2024/06/05 04:33

1.先创建一个ProgressBarDialog.mxml文件:

<?xml version="1.0" encoding="utf-8"?><s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"  xmlns:s="library://ns.adobe.com/flex/spark"  xmlns:mx="library://ns.adobe.com/flex/mx" width="200" height="100"><fx:Declarations><!-- 将非可视元素(例如服务、值对象)放在此处 --></fx:Declarations><fx:Script><![CDATA[import mx.managers.PopUpManager;public  function showMessage(msg:String,swfVisible:Boolean):void{txtMessage.text = msg;swfMessage.visible = swfVisible;}public function closed():void{PopUpManager.removePopUp(this);}private function dragControl(pl:TitleWindow):void  {  pl.isPopUp = true;  } ]]></fx:Script><s:TitleWindow id="vb" close="closed()" title="温馨提示:" width="200" height="100" initialize="dragControl(vb)"><mx:HBox id="boxMessage" width="100%" height="100%" horizontalAlign="center" verticalAlign="middle"><s:Label id="txtMessage" text=""/><mx:SWFLoader id="swfMessage" source="save.swf" visible="true"/></mx:HBox></s:TitleWindow></s:Group>


2.创建一个PopUpEffect.mxml文件:

package com.effect{import flash.display.DisplayObject;import flash.geom.Point;import flash.utils.setTimeout;import mx.core.IFlexDisplayObject;import mx.effects.Blur;import mx.effects.Move;import mx.events.MoveEvent;import mx.events.TweenEvent;import mx.managers.PopUpManager;import spark.effects.Resize;public class PopUpEffect{public function PopUpEffect(){}public static function Show(control:IFlexDisplayObject,parent:DisplayObject,modal:Boolean=false):void        {if(parent.width>0){PopUpManager.centerPopUp(control);var GX:Number = parent.localToGlobal(new Point(0,0)).x;var GY:Number = parent.localToGlobal(new Point(0,0)).x;control.x = GX+(parent.width-control.width)/2;control.y = GY+20;}else{control.x=  parent.x;control.y=  parent.y;}            PopUpManager.addPopUp(control,parent,modal);         }        public static function ShowPosition(control:IFlexDisplayObject,parent:DisplayObject,yPosition:int,modal:Boolean=false):void        {            var mShowEffect:Blur=new Blur();            mShowEffect.blurXFrom=255;            mShowEffect.blurYFrom=255;            mShowEffect.blurXTo=0;            mShowEffect.blurYTo=0;            mShowEffect.target= control;            mShowEffect.duration=300;            control.x = 0;            control.y = parent.height-250-yPosition;                        PopUpManager.addPopUp(control,parent,modal);             mShowEffect.play();        }public static function ShowPositionXY(control:IFlexDisplayObject,parent:DisplayObject,xPosition:int,yPosition:int,modal:Boolean=false):void        {            var mShowEffect:Blur=new Blur();            mShowEffect.blurXFrom=255;            mShowEffect.blurYFrom=255;            mShowEffect.blurXTo=0;            mShowEffect.blurYTo=0;            mShowEffect.target= control;            mShowEffect.duration=300;            control.x = xPosition;            control.y = yPosition;            PopUpManager.addPopUp(control,parent,modal);             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():void{                PopUpManager.removePopUp(control);            });            mHideEffect.duration=300;            mHideEffect.target=control;            mHideEffect.play();                    }public static function ShowResize(control:IFlexDisplayObject,parent:DisplayObject,modal:Boolean=false):void{control.x = (parent.width - control.width)/2;control.y = (parent.height - control.height)/2;PopUpManager.addPopUp(control,parent); }public static function HideResize(control:IFlexDisplayObject):void{PopUpManager.removePopUp(control);}public static function ShowDown(control:IFlexDisplayObject,parent:DisplayObject,modal:Boolean=false):void{PopUpManager.addPopUp(control,parent,false); control.x = (parent.width - control.width)/2;var mShowEffect:Move = new Move();mShowEffect.yFrom = - control.height;mShowEffect.yTo = (parent.height - control.height)/2;mShowEffect.target= control;mShowEffect.duration=300;mShowEffect.play();}public static function initWindow(control:IFlexDisplayObject,parent:DisplayObject,modal:Boolean=false):void{PopUpManager.addPopUp(control,parent,false); control.x = -1000;control.y = -1000;}public static function ShowUp(control:IFlexDisplayObject,parent:DisplayObject):void{var mHideEffect:Move=new Move();mHideEffect.yTo = - control.x;mHideEffect.yFrom = (parent.height - control.height)/2;mHideEffect.addEventListener(TweenEvent.TWEEN_END,function():void{PopUpManager.removePopUp(control);});mHideEffect.duration=300;mHideEffect.target=control;mHideEffect.play();            }}}

2.在需要引用的地方创建该类的对象

例如:在某个文件的方法里创建调用:

var progressBarDialog:ProgressBarDialog = new ProgressBarDialog();PopUpEffect.ShowPositionXY(progressBarDialog,this,tWidth/2-75,tHeight/2-75,true);progressBarDialog.showMessage("正在查询,请稍候...",true);

可以在判断未查到数据后,再次调用:

progressBarDialog.showMessage("对不起,未查到数据!",false);

也可以在查到数据后自动关闭:

progressBarDialog.closed();



0 0