一个简单的加载模块弹出ProgressBar 加载进度条

效果图:

import mx.managers.PopUpManager;
import mx.modules.IModuleInfo;
import mx.modules.Module;
import mx.modules.ModuleLoader;
import mx.modules.ModuleManager;
import mx.controls.ProgressBar;
import mx.events.FlexEvent;

private var myProgressBar:ProgressBar;
private var _group:Group;
private var m1:ModuleLoader;

private function init():void{
   inits("widgets/Leftbox/Disaster.swf");//模块生成swf的路径。
}
private function inits(_url:String):void{
                m1 = new ModuleLoader();
                m1.url = _url;
                m1.addEventListener(FlexEvent.LOADING,popUpProgressBar);
                m1.addEventListener(ModuleEvent.PROGRESS,loading);
                m1.addEventListener(ModuleEvent.READY,getModule);
                m1.loadModule();
}
private function popUpProgressBar(event:Event):void{
                //制作进度条的背景图
                 _group = new Group();
                _group.width = 400; _group.height = 93;
                
                var biap:BitmapFill = new BitmapFill();
                biap.source = "@Embed('icos/rightbg.png')";
                var rect:Rect = new Rect();
                rect.width= 400; rect.height = 93; rect.alpha = 0.8;
                rect.fill  = biap;
                _group.addElement(rect);
                this.stage.addChild(_group); 
                _group.horizontalCenter  = 0;
                _group.verticalCenter = 0;
                //弹出
                myProgressBar = new ProgressBar();
                
                myProgressBar.width = 304;
                myProgressBar= PopUpManager.createPopUp(group, ProgressBar, true) as ProgressBar;
                myProgressBar.mode = "manual";//设置Progress的模式
                              
                //设置Progress的样式
               myProgressBar.labelPlacement = "bottom";  

                myProgressBar.setStyle("textAlign","center");                
                myProgressBar.setStyle("barColor",0x12b9bb);                
                myProgressBar.setStyle("trackColors",["white","haloSilver"]);
                myProgressBar.setStyle("color",0x333333);
                myProgressBar.setStyle("labelWidth", myProgressBar.width);
                myProgressBar.setStyle("trackHeight",15);
                myProgressBar.setStyle("fontWeight","normal");
                myProgressBar.setStyle("fontFamily","宋体"); 
                PopUpManager.centerPopUp(myProgressBar);
                
                myProgressBar.x = (this.stage.width - myProgressBar.width)/2;
                myProgressBar.y = (this.stage.height - myProgressBar.height)/2;
 }
private function loading(event:ProgressEvent):void{
                myProgressBar.setProgress(event.bytesLoaded, event.bytesTotal); 
                myProgressBar.label="模块已加载"+Math.round((event.bytesLoaded * 100 / event.bytesTotal)) + "%";
}
private function getModule(event:ModuleEvent):void{

                //清除
                this.stage.removeChild(_group);
                PopUpManager.removePopUp(myProgressBar);
}

你可能感兴趣的:(Flex,ProgressBar,加载进度条,Flash,Builder,Flex)