包 | mx.charts |
类 | public class CategoryAxis |
继承 | CategoryAxis AxisBase EventDispatcher Object |
实现 | IAxis |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
您无需显式设置 CategoryAxis 上的 dataProvider
属性。图表中使用的 CategoryAxis 从包含图表中继承其 dataProvider
属性。
尽管可以使用同一数据提供程序向图表提供数据以及向 CategoryAxis 提供类别,但如果 CategoryAxis 的数据提供程序是相对静态的,则 CategoryAxis 可以优化呈示。如有可能,请确保类别是相对静态的,并且将不断变化的数据存储在单独的数据提供程序中。
dataProvider
属性可以接受具有指定类别名称的属性的字符串数组或记录(对象)数组。如果指定了 categoryField
属性,则 CategoryAxis 认为数据提供程序是一个对象数组。如果 categoryField
属性值为 null
,则 CategoryAxis 认为该数据提供程序是一个字符串数组。
The <mx:CategoryAxis>
tag inherits all the properties
of its parent classes and adds the following properties:
<mx:CategoryAxis Properties categoryField="null" dataFunction="No default" dataProvider="No default" labelFunction="No default" padding="Default depends on chart type" ticksBetweenLabels="true" />
属性 | 由以下参数定义 | ||
---|---|---|---|
baseline : Number [只读]
轴的基线位置。 | CategoryAxis | ||
categoryField : String
指定包含标签文本的数据提供程序的字段。 | CategoryAxis | ||
chartDataProvider : Object [只写]
分配给封闭图表的数据提供程序。 | AxisBase | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
dataFunction : Function
指定一个方法,其返回值应可用作当前项目的 categoryValue。如果设置了此属性,则自定义数据函数的返回值优先于 categoryField。自定义 dataFunction 使用以下签名:function_name (axis:CategoryAxis, item:Object):Object { ... | CategoryAxis | ||
dataProvider : Object
指定包含标签名称的数据源。 | CategoryAxis | ||
displayName : String
轴的名称。 | AxisBase | ||
labelFunction : Function
指定一个函数,用于定义为 CategoryAxis 的 dataProvider 中的各个项目生成的标签。 | CategoryAxis | ||
padding : Number
指定在屏幕上呈示数据时添加到轴上任意一端的填充。 | CategoryAxis | ||
ticksBetweenLabels : Boolean
指定轴上主刻度线相对于类别标签的位置。 | CategoryAxis | ||
title : String
沿该轴显示的标题文本。 | AxisBase | ||
unitSize : Number [只读]
由该轴表示的一个数据单位大小。 | AxisBase |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | CategoryAxis | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
在图表数据更改时触发通知范围对象的事件。 | AxisBase | ||
将事件调度到事件流中。 | EventDispatcher | ||
将任意类型的一组值过滤为可以映射的一组数字。 | CategoryAxis | ||
格式化值以便在 DataTip 中显示。 | CategoryAxis | ||
确定范围以估计轴标签的内容。 | CategoryAxis | ||
获取显示的标签文本。 | CategoryAxis | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
沿轴将一个位置映射回数字数据值。 | CategoryAxis | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将任意类型的一组值转换为一组可以转换为屏幕坐标的数字。 | CategoryAxis | ||
确定轴处理重叠标签的方式。 | CategoryAxis | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
当在不发生重叠的情况下 AxisRenderer 无法清楚地显示标签时调用,像 Axis 对象减少标签组中标签的数目一样。 | CategoryAxis | ||
使用轴的每个 DataTransform 都将自身注册到该轴。 | AxisBase | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
将一组来自数据空间的值映射到屏幕空间。 | CategoryAxis | ||
使用轴的每个 DataTransform 都将自身注册到该轴。 | AxisBase | ||
更新图表。 | CategoryAxis | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
baseline | 属性 |
categoryField | 属性 |
dataFunction | 属性 |
dataFunction:Function
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定一个方法,其返回值应可用作当前项目的 categoryValue。如果设置了此属性,则自定义数据函数的返回值优先于 categoryField
自定义 dataFunction
使用以下签名:
function_name (axis:CategoryAxis, item:Object):Object { ... }
axis
是使用此 dataFunction
的当前轴,item
是所考虑的 dataProvider 中的项目。此函数返回一个对象。
例如,自定义 dataFunction
的一种用法是从包含带有嵌套字段的项目的 dataProvider 中返回值。
实现
public function get dataFunction():Function
public function set dataFunction(value:Function):void
示例
如何使用本示例
public function myFunction(axis:CategoryAxis,item:Object):Object { return(item.Country.State); }
dataProvider | 属性 |
dataProvider:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定包含标签名称的数据源。dataProvider
可以是字符串 Array、对象 Array 或者任何实现了 IList 或 ICollectionView 接口的对象。如果 dataProvider
是字符串 Array,请确保将 categoryField
属性设置为 null
。如果 dataProvider 是对象 Array,请将 categoryField
属性设置为包含标签文本的字段的名称。
实现
public function get dataProvider():Object
public function set dataProvider(value:Object):void
labelFunction | 属性 |
labelFunction:Function
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定一个函数,用于定义为 CategoryAxis 的 dataProvider
中的各个项目生成的标签。如果未提供 labelFunction
,则轴标签将默认为类别自身的值。
CategoryAxis 的 labelFunction
方法使用以下签名:
function function_name(categoryValue:Object, previousCategoryValue:Object, axis:CategoryAxis, categoryItem:Object):String { ... }
其中:
categoryValue
是所表示的类别的值。previousCategoryValue
是轴上前一个类别的值。axis
是将要呈示的 CategoryAxis。categoryItem
是将要呈示的dataProvider
中的项目。
Flex 将返回的 String 显示为轴标签。
如果未设置 categoryField
属性,则该值与 categoryValue
属性相同。
实现
public function get labelFunction():Function
public function set labelFunction(value:Function):void
padding | 属性 |
padding:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定在屏幕上呈示数据时添加到轴上任意一端的填充。如果设置为 0,则将第一个类别映射到轴的最前端,将最后一个类别映射到末端。如果设置为 0.5,则保留类别一半宽度的填充,该类别应位于轴的前端与第一个类别之间以及最后一个类别和轴的末端之间的轴上。
这对于呈示内容超出类别范围的图表类型(如列和栏)很有用。但是,当用作 LineChart 或 AreaChart 中的 horizontalAxis 时,将被重置为 0。
默认值为 0.5。
实现
public function get padding():Number
public function set padding(value:Number):void
ticksBetweenLabels | 属性 |
CategoryAxis | () | 构造函数 |
public function CategoryAxis()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数。
filterCache | () | 方法 |
formatForScreen | () | 方法 |
getLabelEstimate | () | 方法 |
public function getLabelEstimate():AxisLabelSet
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
确定范围以估计轴标签的内容。轴几乎立即调用 getLabels()
方法以获取真实值。轴使用估计的值调整图表边距,因此只要估计的标签和实际标签(由 getLabels()
方法返回)间存在差别,就会调整标签以满足要求。
当返回估计值时,轴只需返回最小和最大标签。如果标签组完全是静态的,不会根据轴大小在屏幕上显示,则轴可通过此函数返回整个标签组,并将估计值标记为准确值。
返回AxisLabelSet — AxisLabel 对象的数组。
|
getLabels | () | 方法 |
public function getLabels(minimumAxisLength:Number):AxisLabelSet
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
获取显示的标签文本。当 Flex 调用此方法时,轴已确定标签的最小长度。
参数
minimumAxisLength:Number — 轴的最小长度(以像素为单位)。轴长可以大于此值,但不可以小于此值。
|
AxisLabelSet — AxisLabel 对象的数组。
|
invertTransform | () | 方法 |
mapCache | () | 方法 |
public function mapCache(cache:Array, field:String, convertedField:String, indexValues:Boolean = false):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将任意类型的一组值转换为一组可以转换为屏幕坐标的数字。
参数
cache:Array — 可从中读取和存储转换后的值的对象数组。
| |
field:String — 包含转换之前的值的缓存 Array 中所含的对象域。
| |
convertedField:String — 存储转换后的值的缓存 Array 中所含的对象域。
| |
indexValues:Boolean (default = false ) — 如果要映射的值是索引值,则此参数为 true ;如果这些值是自然数据值,则此参数为 false 。
|
preferDropLabels | () | 方法 |
reduceLabels | () | 方法 |
public function reduceLabels(intervalStart:AxisLabel, intervalEnd:AxisLabel):AxisLabelSet
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当在不发生重叠的情况下 AxisRenderer 无法清楚地显示标签时调用,像 Axis 对象减少标签组中标签的数目一样。此方法传递重叠的两个标签。
参数
intervalStart:AxisLabel — 标签重叠处间隔的开始位置。
| |
intervalEnd:AxisLabel — 标签重叠处间隔的结束位置。
|
AxisLabelSet — 通过减少标签的数目来解决重叠问题的新标签组。
|
transformCache | () | 方法 |
public function transformCache(cache:Array, field:String, convertedField:String):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将一组来自数据空间的值映射到屏幕空间。
参数
cache:Array — 可从中读取和存储映射后的值的对象 Array。
| |
field:String — 包含映射之前的值的缓存 Array 中所含的对象域。
| |
convertedField:String — 存储映射后的值的缓存 Array 中所含的对象域。
|
update | () | 方法 |
public function update():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
更新图表。可在每个帧中多次调用此方法。
<?xml version="1.0"?> <!-- Simple example to demonstrate the HLOCChart control. --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; [Bindable] private var stockDataAC:ArrayCollection = new ArrayCollection( [ { Date: "25-Jul", Open: 40.55, High: 40.75, Low: 40.24, Close:40.31}, { Date: "26-Jul", Open: 40.15, High: 40.78, Low: 39.97, Close:40.34}, { Date: "27-Jul", Open: 40.38, High: 40.66, Low: 40, Close:40.63}, { Date: "28-Jul", Open: 40.49, High: 40.99, Low: 40.3, Close:40.98}, { Date: "29-Jul", Open: 40.13, High: 40.4, Low: 39.65, Close:39.95}, { Date: "1-Aug", Open: 39.00, High: 39.50, Low: 38.7, Close:38.6}, { Date: "2-Aug", Open: 38.68, High: 39.34, Low: 37.75, Close:38.84}, { Date: "3-Aug", Open: 38.76, High: 38.76, Low: 38.03, Close:38.12}, { Date: "4-Aug", Open: 37.98, High: 37.98, Low: 36.56, Close:36.69}, { Date: "5-Aug", Open: 36.61, High: 37, Low: 36.48, Close:36.86} ]); ]]> </fx:Script> <fx:Declarations> <!-- Define custom Stroke for the wick and ticks. --> <mx:SolidColorStroke id="s1" color="0x000000" weight="5" joints="bevel" caps="square"/> </fx:Declarations> <mx:Panel title="HLOCChart Control Example" height="100%" width="100%"> <mx:HLOCChart id="hlocchart" height="100%" width="100%" paddingRight="5" paddingLeft="5" showDataTips="true" dataProvider="{stockDataAC}"> <mx:verticalAxis> <mx:LinearAxis id="vaxis" baseAtZero="false" title="Price"/> </mx:verticalAxis> <mx:horizontalAxis> <mx:CategoryAxis id="haxis" categoryField="Date" title="Date"/> </mx:horizontalAxis> <mx:horizontalAxisRenderers> <mx:AxisRenderer axis="{haxis}" canDropLabels="true"/> </mx:horizontalAxisRenderers> <mx:series> <mx:HLOCSeries openField="Open" highField="High" lowField="Low" closeField="Close" stroke="{s1}" openTickStroke="{s1}" closeTickStroke="{s1}" openTickLength="7" closeTickLength="7" /> </mx:series> </mx:HLOCChart> </mx:Panel> </s:Application>
Tue Jun 12 2018, 11:04 AM Z