ProgressBar 进度条组件封装

该博客介绍了如何使用ActionScript封装一个ProgressBar组件,包括设置定时器、调整间隔时间、重复次数和进度增长值。通过监听TimerEvent.TIMER事件更新进度,并提供了显示进度信息的选项。同时,提供了开始和停止定时器的方法,以及在进度事件发生时的处理函数。

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

<?xml version="1.0" encoding="utf-8"?> <mx:ProgressBar xmlns:mx="http://www.adobe.com/2006/mxml"     width="100"     height="10"     minimum="0"     maximum="100"     mode="manual"     trackHeight="10"     verticalGap="0"     creationComplete="initComp();">     <mx:Script>         <![CDATA[             private var myTimer:Timer;// 定时器             public var delay:Number = 50;// 间隔时间             public var repetCount:Number = 0;// 重复次数             public var increaseNum:Number = 1;// 进度增长值             private var proc:uint = 0;// 进度基数             public var labelTip:String = "正在处理...请等待...";//显示内容需要时在外部赋值             private const PERCENT:Number = 100;// 进度百分比             public var isDispalyLabel:Boolean = true;// 是否显示进度信息                         /*****************************************************************              *     注意:当调整进度条显示的宽度时,得根据显示的宽度,适当考虑                *              *     进度增长值和间隔时间;这样才能更感觉时平滑过度                          *              *     若需改为ProgressEvent.PROGRESS 监听,需先关闭定时器触发 closeTimer()*              *  改为onProgress()函数响应                                             *              *****************************************************************/             private function initComp():void {                 this.label = "";                 initTimer();                 startTimer();                    }                         /**              *     初始化Timer              */             public function initTimer():void {                 myTimer = new Timer( delay, repetCount );                 myTimer.addEventListener( TimerEvent.TIMER, onTimer );             }                         /**             *     响应Timer事件 计算进度             */             private function onTimer( event:TimerEvent ):void {                 proc += increaseNum;                 this.setProgress( proc %= PERCENT, PERCENT );                 if( isDispalyLabel ) {                     this.label = labelTip;                 } else {                     this.label = "";                 }                  }                         /**              *    关闭定时器Timer              */             public function startTimer():void {                 proc = 0;                 myTimer.start();             }                         /**              *    关闭定时器Timer              */             public function closeTimer():void {                 myTimer.stop();             }                         /**              *    响应进度事件处理              */             public function onProgress(e: ProgressEvent): void{                  /* lbProgress.text = " 已上传 " + e.bytesLoaded                    + " 字节,共 " + e.bytesTotal + " 字节";   */                 var proc: uint = e.bytesLoaded / e.bytesTotal * 100;                  this.setProgress(proc, 100);                 this.visible = true;                 if( isDispalyLabel ) {                     this.label= "当前进度: " + " " + proc + "%";                 } else {                     this.label = "";                 }                    }          ]]>     </mx:Script> </mx:ProgressBar>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值