Flex加载module时候显示进度条(转)

      在加载module的时候不能使用重写的SparkDownloadProgressBar或DownloadProgressBar,在module中不支持preloader属性,这样就要使用progressbar来实现显示进度条了。这样在加载器后面用一个progressbar,一定要放在加载器后面,不然显示的时候会被ModuleLoader 遮挡住。moduleloader有3个事件,loading为正在加载中,progress为进度事件,ready为加载完成。mode="manual";这个属性一定要加上,不然不显示进度,百分比出不来。

代码可以这样
<mx:script>
      public function loading(e:ModuleEvent):void{
                   myProgressBar.setProgress(e.bytesLoaded,e.bytesTotal);
                   myProgressBar.label="模块已加载"+Math.round((e.bytesLoaded * 100 / e.bytesTotal)) + "%";
             }
</mx:script>
<mx:ModuleLoader ready="myProgressBar.visible=false" loading="myProgressBar.visible=true" progress="loading(event)"  id="module" />
<mx:ProgressBar id="myProgressBar" horizontalCenter="0" verticalCenter="0" mode="manual"  width="200"/>

 

还可以如下操作:

  private var myProgressBar:ProgressBar;
   
   private function init():void{
    m1.url="MyModule.swf";
    m1.addEventListener(ModuleEvent.READY,getModule);
   }
   
   private function getModule(event:ModuleEvent):void{
    (m1.child as MyModule).getModuleSuccess();
   }
   
   private function loading(event:ProgressEvent):void{
    myProgressBar.setProgress(event.bytesLoaded, event.bytesTotal); 
    myProgressBar.label="模块已加载"+Math.round((event.bytesLoaded * 100 / event.bytesTotal)) + "%";
   }
   
   private function removeProgressBar(event:Event):void{
    //清除
    PopUpManager.removePopUp(myProgressBar);
   }
   
   private function popUpProgressBar(event:Event):void{
    //弹出
    myProgressBar= new ProgressBar();
    myProgressBar.mode="manual";
    myProgressBar= PopUpManager.createPopUp(this, ProgressBar, true) as ProgressBar; 
    PopUpManager.centerPopUp(myProgressBar); 

    myProgressBar.x = (this.stage.width - myProgressBar.width)/2;
    myProgressBar.y = (this.stage.height - myProgressBar.height)/2;
   }
   
  ]]>
 </fx:Script>
 
 <mx:ModuleLoader id="m1" width="100%" height="100%" loading="popUpProgressBar(event)" progress="loading(event)" ready="removeProgressBar(event)"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值