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

📄 categoryaxis.as

📁 拓扑图基于SNMP数据采集模块的设计和实现
💻 AS
字号:
package com.yahoo.astra.fl.charts.axes{	import com.yahoo.astra.fl.charts.series.ISeries;	/**	 * An axis type representing a set of categories.	 * 	 * @author Josh Tynjala	 */	public class CategoryAxis extends BaseAxis implements IAxis, IClusteringAxis	{			//--------------------------------------	//  Constructor	//--------------------------------------			/**		 * Constructor.		 */		public function CategoryAxis()		{		}			//--------------------------------------	//  Properties	//--------------------------------------				/**		 * @private		 * Used to determine the position of an item based on a value.		 */		protected var categorySize:Number = 0;				/**		 * @private		 * Storage for the categoryNames property.		 */		private var _categoryNames:Array = [];				/**		 * @private		 * Indicates whether the category labels are user-defined or generated by the axis.		 */		private var _categoryNamesSetByUser:Boolean = false;				/**		 * The category labels to display along the axis.		 */		public function get categoryNames():Array		{			return this._categoryNames;		}				/**		 * @private		 */		public function set categoryNames(value:Array):void		{			this._categoryNamesSetByUser = value != null && value.length > 0;			if(!this._categoryNamesSetByUser)			{				this._categoryNames = [];			}			else			{				//ensure that all category names are strings				var names:Array = [];				for(var i:int = 0; i < value.length; i++)				{					names.push(value[i].toString());				}				this._categoryNames = names;			}		}				/**		 * @inheritDoc		 */		public function get clusterCount():int		{			return this.categoryNames.length;		}			//--------------------------------------	//  Public Methods	//--------------------------------------				/**		 * @inheritDoc		 */		public function valueToLocal(value:Object):Number		{			if(value === null)			{				return NaN;			}						var index:int = this.categoryNames.indexOf(value.toString());			if(index >= 0)			{				var position:int = this.categorySize * index + (this.categorySize / 2);				if(this.reverse)				{					position = this.renderer.length - position;				}				return position;			}			return NaN;		}			/**		 * @inheritDoc		 */		public function updateScale(data:Array):void		{			if(!this._categoryNamesSetByUser)			{				this.autoDetectCategories(data);			}			this.calculateCategorySize();						var ticks:Array = [];			var categoryCount:int = this.categoryNames.length;			for(var i:int = 0; i < categoryCount; i++)			{				var category:String = this.categoryNames[i];				var position:Number = this.valueToLocal(category);				var label:String = this.valueToLabel(category);				var axisData:AxisData = new AxisData(position, category, label);				ticks.push(axisData);			}			this.renderer.ticks = ticks;			this.renderer.minorTicks = [];		}		//--------------------------------------	//  Public Methods	//--------------------------------------			/**		 * @private		 * Update the labels by adding or removing some, setting the text, etc.		 */		private function autoDetectCategories(data:Array):void		{			var uniqueCategoryNames:Array = [];			var seriesCount:int = data.length;			for(var i:int = 0; i < seriesCount; i++)			{				var series:ISeries = data[i] as ISeries;				if(!series)				{					continue;				}								var seriesLength:int = series.length;				for(var j:int = 0; j < seriesLength; j++)				{					var category:Object = this.chart.itemToAxisValue(series, j, this);										//names must be unique					if(uniqueCategoryNames.indexOf(category) < 0)					{						uniqueCategoryNames.push(category);					}				}			}			this.categoryNames = uniqueCategoryNames.concat();		}				/**		 * @private		 * Determines the amount of space provided to each category.		 */		private function calculateCategorySize():void		{			var categoryCount:int = this.categoryNames.length;			this.categorySize = this.renderer.length;			if(categoryCount > 0)			{				this.categorySize /= categoryCount;			}		}	}}

⌨️ 快捷键说明

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