AS3 ProgressBar ---- 仿Win7进条度

本文展示了一个简单的Flash应用,通过创建一个包含进度条、滑块和按钮的交互式界面,演示了如何在应用程序中实现事件监听和响应。通过代码实现进度条值的变化、滑块值的更新以及按钮绑定事件的功能。

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

测试类:

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

运行图片效果:

在 VB6 中设置 Windows 7 样式,可以通过以下步骤实现: 1. 在 VB6 中打开你的项目。 2. 在工具箱中添加 Microsoft Windows Common Controls 6.0。 3. 在窗体设计器中添加 ListView、TreeView、ProgressBar、StatusBar、TabControl 等控件。 4. 在窗体加载事件中添加以下代码: Private Sub Form_Load() ' Windows 7 样式 On Error Resume Next Dim objXP As UXThemeLib.UXTheme Set objXP = New UXThemeLib.UXTheme objXP.SetWindowTheme Me.hwnd, "Explorer", "" ' 设置控件样式 ListView1.View = lvwReport ListView1.FullRowSelect = True ListView1.Gridlines = True TreeView1.LineStyle = tvwRootLines TreeView1.FullRowSelect = True TreeView1.Nodes.Add , , "Node1", "Node 1" TreeView1.Nodes.Add , , "Node2", "Node 2" TreeView1.Nodes.Add "Node1", tvwChild, "Node3", "Node 3" TreeView1.Nodes.Add "Node1", tvwChild, "Node4", "Node 4" TreeView1.Nodes.Add "Node2", tvwChild, "Node5", "Node 5" TreeView1.Nodes.Add "Node2", tvwChild, "Node6", "Node 6" ProgressBar1.Min = 0 ProgressBar1.Max = 100 ProgressBar1.Value = 50 StatusBar1.Panels(1).Text = "Ready" TabControl1.Style = sstTabs End Sub 5. 运行程序,你会看到 ListView、TreeView、ProgressBar、StatusBar、TabControl 等控件已经具有 Windows 7 样式。 注意: 1. 以上代码需要引用 UXThemeLib 类库,可以在 VB6 中的菜单栏中选择“项目”->“引用”,勾选“Microsoft Windows Common Controls 6.0”和“Microsoft Windows Common Controls-3 6.0”即可。 2. 以上代码中的控件名称和样式可以根据实际情况行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值