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

📄 anchorcontrol.as

📁 用于flash/flex的 as3的 2D图形图像图表的动态生成
💻 AS
字号:
package flare.vis.controls
{
	import flare.vis.Visualization;
	import flare.vis.operator.layout.Layout;
	
	import flash.display.InteractiveObject;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;
	
	/**
	 * Interactive control for updating a layout's anchor point in response
	 * to mouse movement. This control is often used to dynamically update a
	 * focus+context distortion.
	 */
	public class AnchorControl extends Control
	{
		private var _layout:Layout;
		
		public function get layout():Layout { return _layout; }
		public function set layout(l:Layout):void { _layout = l; }
		
		/** Update function called when the layout anchor changes. */
		public var update:Function = function():void {
			Visualization(_object).update();
		}
		
		// --------------------------------------------------------------------
		
		/**
		 * Creates a new AnchorControl
		 * @param layout the layout on which to update the anchor point
		 */
		public function AnchorControl(layout:Layout=null)
		{
			_layout = layout;
		}
		
		/** @inheritDoc */
		public override function attach(obj:InteractiveObject):void
		{
			super.attach(obj);
			if (obj != null) {
				obj.addEventListener(Event.ENTER_FRAME, updateMouse);
			}
		}
		
		/** @inheritDoc */
		public override function detach():InteractiveObject
		{
			if (_object != null) {
				_object.removeEventListener(Event.ENTER_FRAME, updateMouse);
			}
			return super.detach();
		}
		
		/**
		 * Causes the layout anchor to be updated according to the current
		 * mouse position.
		 * @param evt an optional mouse event
		 */
		public function updateMouse(evt:Event=null):void
		{
			// get current anchor, run update if changed
			var p1:Point = _layout.layoutAnchor;
			_layout.layoutAnchor = new Point(_object.mouseX, _object.mouseY);
			// distortion might snap the anchor to the layout bounds
			// so we need to re-retrieve the point to ensure accuracy
			var p2:Point = _layout.layoutAnchor;
			if (p1.x != p2.x || p1.y != p2.y) update();
		}
		
	} // end of class AnchorControl
}

⌨️ 快捷键说明

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