AS3 ProgressBar ---- 仿Win7进条度

测试类:

package test
{
	import controlsEvents.ProgressBarEvent;
	import controlsEvents.TrackBarEvent;
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	public class ProgressBarTest extends Sprite
	{
		private var author:Label;
		private var pb:ProgressBar;
		private var tb:HorizontalTrackBar;
		private var bt:Button;
		private var isBindEnterFrame:Boolean=true;
		private var lb:Label;
		
		public function ProgressBarTest()
		{
			super();
			
			stage.color=0xccccbb;
			stage.frameRate=60;
			stage.align=StageAlign.TOP_LEFT;
			stage.scaleMode=StageScaleMode.NO_SCALE;
			
			author=new Label();
			addChild(author);
			author.textColor=0x00ff00;
			author.fontSize=24;
			author.x=100;
			author.y=50;
			author.text="作者:Jave.Lin";
			
			pb=new ProgressBar();
			addChild(pb);
			
			pb.x=100;
			pb.y=100;
			pb.width=300;
//			pb.height=5;
			
			pb.addEventListener(Event.ENTER_FRAME,onEnterFrame);
			pb.addEventListener(ProgressBarEvent.VALUE_CHANGED,onProgressValueChangedHandler);
			
			tb=new HorizontalTrackBar();
			addChild(tb);
			tb.width=300;
			
			tb.x=100;
			tb.y=150;
			
			tb.addEventListener(TrackBarEvent.VALUE_CHANGED,onValueChangedHandler);
			
			bt=new Button();
			addChild(bt);
			bt.x=100;
			bt.y=170;
//			bt.width=120;
			bt.isAutoSize=true;
			bt.text="[已]绑定自动滚动事件[摄量控件不可使用]";
			isBindEnterFrame=true;
			tb.mouseChildren=tb.mouseEnabled=!isBindEnterFrame;
			
			bt.addEventListener(MouseEvent.CLICK,onClick);
			
			lb=new Label();
			addChild(lb);
			
			lb.x=100;
			lb.y=120;
			
			tb.curValue=50;
		}
		
		private function onProgressValueChangedHandler(e:ProgressBarEvent):void
		{
			lb.text="progressValue:"+pb.curValue;
		}
		
		private function onClick(e:MouseEvent):void
		{
//			if(pb.hasEventListener(Event.ENTER_FRAME))//因为pb内部本来就是Event.EnterFrame事件,所以这里不这样判断
			if(isBindEnterFrame)
			{
				isBindEnterFrame=false;
				tb.mouseChildren=tb.mouseEnabled=!isBindEnterFrame;
				bt.text="未绑定自动滚动事件[摄量控件可以使用]";
				pb.removeEventListener(Event.ENTER_FRAME,onEnterFrame);
			}
			else
			{
				isBindEnterFrame=true;
				tb.mouseChildren=tb.mouseEnabled=!isBindEnterFrame;
				bt.text="[已]绑定自动滚动事件[摄量控件不可使用]";
				pb.addEventListener(Event.ENTER_FRAME,onEnterFrame);
			}
		}
		
		private function onValueChangedHandler(e:TrackBarEvent):void
		{
			pV=pb.curValue=tb.curValue;
			trace("pb.curValue",pb.curValue);
		}
		
		private var pV:Number=0;
		
		private function onEnterFrame(e:Event):void
		{
			pV+=.5;
			if(pV>=tb.maxValue)
			{
				pV=tb.minValue;
			}
			tb.curValue=pV;
		}
	}
}


下载运行实例:ProgressBar.swf

运行图片效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值