⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fullscrollbar.as

📁 Library for scroller flash MX
💻 AS
字号:
package{		/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////    ______      _________                 ______                 / ____/_  __/ / / ___/______________  / / / /_  ____ ______  / /_  / / / / / /\__ \/ ___/ ___/ __ \/ / / __ \/ __ `/ ___/ / __/ / /_/ / / /___/ / /__/ /  / /_/ / / / /_/ / /_/ / /    /_/    \__,_/_/_//____/\___/_/   \____/_/_/_.___/\__,_/_/     */	import flash.display.Sprite;	import flash.events.Event;	import flash.events.MouseEvent;	import flash.geom.Rectangle;	import flash.geom.Matrix;	import flash.display.GradientType;	import flash.display.SpreadMethod;			public class FullScrollbar extends Sprite	{								public var marginTop:int = 20;		public var marginBottom:int = 20;		public var targetHeight:int;		public var target:Sprite;				private var SCRB_BACKGROUND:Sprite;		private var SCRB_HANDLER:Sprite;		private var SCRB_status:Boolean = false;		private var SCRB_scrollY:int = 0;		private var SCRB_handlerY:int = 0;		private var SCRB_maxHeight:int;										public function KillerScrollbar() 		{ 			trace("FullScrollbar: Hello!");				};		public function resize() 		{ 			SCRB_handlerY = SCRB_HANDLER.y;			SCRB_scrollY = 0;			render(0);			};				/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////    _       _ __    (_)___  (_) /_  / / __ \/ / __/ / / / / / / /_  /_/_/ /_/_/\__/                   */				public function init():void 		{			var matr:Matrix = new Matrix();			matr.createGradientBox(20, 1, 0, 0, 0);						SCRB_BACKGROUND = new Sprite();			SCRB_BACKGROUND.graphics.beginGradientFill(GradientType.LINEAR, [0x999999, 0xBBBBBB], [1, 1], [0x00, 0xFF], matr, SpreadMethod.PAD); 			SCRB_BACKGROUND.graphics.drawRoundRect(0, 0, 20, 100, 20, 20);			SCRB_BACKGROUND.graphics.endFill();			var grid1:Rectangle = new Rectangle(1, 20, 18, 60);			SCRB_BACKGROUND.scale9Grid = grid1;			addChild(SCRB_BACKGROUND);						SCRB_HANDLER = new Sprite();			SCRB_HANDLER.graphics.beginGradientFill(GradientType.LINEAR, [0x444444, 0x000000], [1, 1], [0x00, 0xFF], matr, SpreadMethod.PAD); 			SCRB_HANDLER.graphics.drawRoundRect(0, 0, 20, 50, 20, 20);			SCRB_HANDLER.graphics.endFill();			var grid2:Rectangle = new Rectangle(1, 20, 18, 10);			SCRB_HANDLER.scale9Grid = grid2;			addChild(SCRB_HANDLER);						SCRB_HANDLER.addEventListener( MouseEvent.MOUSE_DOWN, EVT_HANDLER_mouseDown );			SCRB_HANDLER.addEventListener( MouseEvent.MOUSE_UP, EVT_HANDLER_mouseUp );			this.stage.addEventListener( MouseEvent.MOUSE_WHEEL, EVT_STAGE_mouseWheel );			this.stage.addEventListener( Event.MOUSE_LEAVE, EVT_STAGE_mouseLeave );			this.stage.addEventListener( Event.RESIZE, EVT_STAGE_resize );			trace("FullScrollbar: Ready");						resize();						};	/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////         __                                           __         _____/ /_____ _____ ____     ___ _   _____  ____  / /______  / ___/ __/ __ `/ __ `/ _ \   / _ \ | / / _ \/ __ \/ __/ ___/ (__  ) /_/ /_/ / /_/ /  __/  /  __/ |/ /  __/ / / / /_(__  ) /____/\__/\__,_/\__, /\___/   \___/|___/\___/_/ /_/\__/____/                 /____/                                         */		public function EVT_STAGE_mouseWheel( e:MouseEvent ):void		{			SCRB_handlerY = SCRB_HANDLER.y;			SCRB_scrollY = 0;			var eDelta = int(e.delta);			if( eDelta != -1 ) if( eDelta != 0 ) if( eDelta != 1 ) render( eDelta * (-6) );		};		public function EVT_STAGE_mouseMove( e:MouseEvent ):void 		{			render(e.stageY);		};		public function EVT_STAGE_releaseOutside( e:MouseEvent ):void 		{			SCRB_status = false;			e.target.stage.removeEventListener( MouseEvent.MOUSE_UP, EVT_STAGE_releaseOutside );			e.target.stage.removeEventListener( MouseEvent.MOUSE_MOVE, EVT_STAGE_mouseMove );		};		public function EVT_STAGE_mouseLeave( e:Event ):void		{			if( SCRB_status )			{				SCRB_status = false;				e.target.stage.removeEventListener( MouseEvent.MOUSE_UP, EVT_STAGE_releaseOutside );				e.target.stage.removeEventListener( MouseEvent.MOUSE_MOVE, EVT_STAGE_mouseMove );			}		};		public function EVT_STAGE_resize( e:Event ):void		{			resize();		};				/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////    __                    ____                                  __         / /_  ____ _____  ____/ / /__  _____   ___ _   _____  ____  / /______  / __ \/ __ `/ __ \/ __  / / _ \/ ___/  / _ \ | / / _ \/ __ \/ __/ ___/ / / / / /_/ / / / / /_/ / /  __/ /     /  __/ |/ /  __/ / / / /_(__  ) /_/ /_/\__,_/_/ /_/\__,_/_/\___/_/      \___/|___/\___/_/ /_/\__/____/  */				public function EVT_HANDLER_mouseDown( e:MouseEvent ):void {			SCRB_handlerY = SCRB_HANDLER.y;			SCRB_scrollY = e.stageY;			SCRB_HANDLER.addEventListener( MouseEvent.ROLL_OUT, EVT_HANDLER_rollOut, false, 0, true );			e.target.stage.addEventListener( MouseEvent.MOUSE_MOVE, EVT_STAGE_mouseMove, false, 0, true );			e.target.stage.addEventListener( MouseEvent.MOUSE_UP, EVT_HANDLER_mouseUp, false, 0, true );			SCRB_status = true;		};		public function EVT_HANDLER_mouseMove( e:MouseEvent ):void 		{			if( SCRB_status ) render( e.stageY );		};		public function EVT_HANDLER_rollOut( e:MouseEvent ):void 		{			if( e.buttonDown ){				e.target.stage.addEventListener( MouseEvent.MOUSE_UP, EVT_STAGE_releaseOutside, false, 0, true );			}			e.target.removeEventListener( MouseEvent.ROLL_OUT, EVT_HANDLER_rollOut );		};		public function EVT_HANDLER_mouseUp( e:MouseEvent ):void 		{			SCRB_status = false;			e.target.stage.removeEventListener( MouseEvent.MOUSE_MOVE, EVT_STAGE_mouseMove );			e.target.stage.removeEventListener( MouseEvent.MOUSE_UP, EVT_HANDLER_mouseUp );		};				/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////                        __            ________  ____  ____/ /__  _____  / ___/ _ \/ __ \/ __  / _ \/ ___/ / /  /  __/ / / / /_/ /  __/ /    /_/   \___/_/ /_/\__,_/\___/_/                                        */				public function render( Y:int ):void 		{			targetHeight = target.height;			SCRB_maxHeight = stage.stageHeight - marginTop - marginBottom;			this.y = marginTop;						var backgroundHeight:int = SCRB_maxHeight;			if(backgroundHeight<40) backgroundHeight = 40;			SCRB_BACKGROUND.height = backgroundHeight;							if(target != null)			{				if( targetHeight > SCRB_maxHeight )				{										SCRB_HANDLER.visible  = true;					SCRB_BACKGROUND.alpha = 1;					var yTarget:int;					var delta:int = Y - SCRB_scrollY;					var handlerHeight:int = Math.floor( ( backgroundHeight * SCRB_maxHeight / targetHeight) / 1 );					if( handlerHeight < 30) handlerHeight = 30;					SCRB_HANDLER.height = handlerHeight;					if( delta <= -SCRB_handlerY ) delta = -SCRB_handlerY;					if( delta > backgroundHeight - handlerHeight - SCRB_handlerY ) delta = Math.floor( backgroundHeight - handlerHeight - SCRB_handlerY );					var SCRB_handlerNewY:int = SCRB_handlerY + delta;					SCRB_HANDLER.y = SCRB_handlerNewY;					yTarget = Math.floor( marginTop - ( ( SCRB_handlerNewY * ( targetHeight - SCRB_maxHeight ) / ( backgroundHeight - handlerHeight ) ) ) );					target.y = yTarget;									trace( "FullScrollbar: "+String( Math.floor(SCRB_handlerNewY * 100 / ( backgroundHeight - handlerHeight ) ) )+"%" );				} 				else 				{					SCRB_HANDLER.y = 0;					SCRB_scrollY = 0;					target.y = marginTop;					SCRB_HANDLER.visible  = false;					SCRB_BACKGROUND.alpha = .2;				}							}						};							}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -