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

📄 panner.as

📁 QS我也没用过
💻 AS
字号:
package qs.charts
{
	import mx.charts.chartClasses.ChartElement;
	import flash.events.MouseEvent;
	import mx.charts.chartClasses.ChartBase;
	import flash.geom.Point;
	import mx.events.DynamicEvent;

	[Event("pan")]	
	public class Panner extends mx.charts.chartClasses.ChartElement
	{
		public function Panner()
		{
			super();
			addEventListener(MouseEvent.MOUSE_DOWN,startTracking);
		}
		
		private var _lastXValue:Number;
		private function startTracking(e:MouseEvent):void
		{
			var c:ChartBase = chart;
			_lastXValue = c.mouseX;
			systemManager.addEventListener(MouseEvent.MOUSE_MOVE,track,true);
			systemManager.addEventListener(MouseEvent.MOUSE_UP,stopTracking,true);
		}
		private function track(e:MouseEvent):void
		{
			e.stopImmediatePropagation();
			
			var c:ChartBase = chart;

			var prevValue:Number = c.localToData( new Point(_lastXValue,c.mouseY))[0];
			var newValue:Number = c.localToData(new Point(c.mouseX,c.mouseY))[0];
			var de:DynamicEvent = new DynamicEvent("pan");
			de.delta = -(newValue - prevValue);
			_lastXValue = c.mouseX;
			dispatchEvent(de);
		}
		private function stopTracking(e:MouseEvent):void
		{
			systemManager.removeEventListener(MouseEvent.MOUSE_MOVE,track,true);
			systemManager.removeEventListener(MouseEvent.MOUSE_UP,stopTracking,true);
			e.stopImmediatePropagation();
			track(e);			
		}
		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
		{
			graphics.clear();
			graphics.moveTo(0,0);
			graphics.beginFill(0,0);
			graphics.drawRect(0,0,unscaledWidth,unscaledHeight);
			graphics.endFill();
		}
	}
}

⌨️ 快捷键说明

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