{ "type": "class",
  "qname": "mx.charts.series.ColumnSeries",
  "baseClassname": "mx.charts.chartClasses.Series"
  ,
    "description": "Defines a data series for a ColumnChart control. By default, this class uses the BoxItemRenderer class. Optionally, you can define a custom itemRenderer for the data series. The custom itemRenderer must implement the IDataRenderer interface.  <p> The <code>&lt;mx:ColumnSeries&gt;</code> tag inherits all the properties of its parent classes, and the following properties: </p> <pre>\\n &lt;mx:ColumnSeries\\n <strong>Properties</strong>\\n columnWidthRatio=&quot;.65&quot;\\n fillFunction=&quot;<i>Internal fill function</i>&quot;\\n horizontalAxis=&quot;<i>No default</i>&quot;\\n labelField=&quot;<i>No default</i>&quot;\\n labelFunction=&quot;<i>No default</i>&quot;\\n legendData=&quot;<i>No default</i>&quot;\\n maxColumnWidth=&quot;<i>No default</i>&quot;\\n minField=&quot;null&quot;\\n offset=&quot;<i>No default</i>&quot;\\n sortOnXField=&quot;false|true&quot;\\n stacker=&quot;<i>No default</i>&quot;\\n stackTotals=&quot;<i>No default</i>&quot;\\n verticalAxis=&quot;<i>No default</i>&quot;\\n xField=&quot;null&quot;\\n yField=&quot;null&quot;\\n \\n \\n <strong>Styles</strong>\\n fill=&quot;<i>IFill; no default</i>&quot;\\n fills=&quot;<i>IFill; no default</i>&quot;\\n fontFamily=&quot;Verdana&quot;\\n fontSize=&quot;10&quot;\\n fontStyle=&quot;italic|normal&quot;\\n fontWeight=&quot;bold|normal&quot;\\n labelAlign=&quot;center|left|right&quot;\\n labelPosition=&quot;none|inside|outside&quot;\\n labelSizeLimit=&quot;9&quot;\\n itemRenderer=&quot;<i>BoxItemRenderer</i>&quot;\\n legendMarkerRenderer=&quot;<i>Defaults to series's itemRenderer</i>&quot;\\n stroke=&quot;<i>Stroke; no default</i>&quot;\\n textDecoration=&quot;underline|none&quot;\\n /&gt;\\n </pre> </p>",
  "tags": [
  {  "tagName": "includeExample",
         "values": ["../examples/Column_BarChartExample.mxml"]},
      {  "tagName": "see",
         "values": ["mx.charts.ColumnChart"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "mx.charts.series.ColumnSeries",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Array",
        "qname": "items",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.core.UIComponent",
        "qname": "labelContainer",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Array",
        "qname": "legendData",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "columnWidthRatio",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies the width of columns relative to the category width. A value of 1 uses the entire space, while a value of .6 uses 60% of the column's available space. You typically do not set this property directly. The actual column width used is the smaller of <code>columnWidthRatio</code> and the <code>maxColumnWidth</code> property.",
        "tags": [
        {  "tagName": "default",
               "values": ["0.65"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "fillFunction",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies a method that returns the fill for the current chart item in the series. If this property is set, the return value of the custom fill function takes precedence over the <code>fill</code> and <code>fills</code> style properties. But if it returns null, then <code>fills</code> and <code>fill</code> will be prefered in that order.  <p>The custom <code>fillFunction</code> has the following signature:  <pre>\\n <i>function_name</i> (item:ChartItem, index:Number):IFill { ... }\\n </pre>  <code>item</code> is a reference to the chart item that is being rendered. <code>index</code> is the index of the chart item in the renderData's cache. This is different from the index of the chart's data provider because it is sorted based on the x, y, and z values. This function returns an object that implements the <code>IFill</code> interface. </p>  <p>An example usage of a customized <code>fillFunction</code> is to return a fill based on some threshold.</p>  <pre>\\n public function myFillFunction(item:ChartItem, index:Number):IFill {\\n var curItem:ColumnSeriesItem = ColumnSeriesItem(item);\\n if (curItem.yNumber > 10)\\n return(new SolidColor(0x123456, .75));\\n else\\n return(new SolidColor(0x563412, .75));\\n }\\n </pre>  <p> If you specify a custom fill function for your chart series and you want to have a Legend control, you must manually create a Legend control and add LegendItems to it. </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "example",
               "values": []},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.charts.chartClasses.IAxis",
        "qname": "horizontalAxis",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Defines the labels, tick marks, and data position for items on the x-axis. Use either the LinearAxis class or the CategoryAxis class to set the properties of the horizontalAxis as a child tag in MXML or create a LinearAxis or CategoryAxis object in ActionScript.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Class",
        "qname": "itemType",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The subtype of ChartItem used by this series to represent individual items. Subclasses can override and return a more specialized class if they need to store additional information in the items",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "labelField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Name of a field in the data provider whose value appears as the label. This property is ignored if the <code>labelFunction</code> property is specified.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "labelFunction",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies a callback function used to render each label of the Series.  A labelFunction must have the following signature:  <pre>\\n function <i>function_name</i>(<i>element</i>:ChartItem, <i>series</i>:Series):String { ... }\\n </pre>  <code><i>element</i></code> is the chart item that is being rendered.  <code><i>series</i></code> is the series to which the chart item belongs.  The returned String is the label of the current item.  <p>An example usage of a customized labelFunction is as follows:</p> <pre>\\n private function myLabelFunction(element:ChartItem, series:Series):String {\\n var item:ColumnSeriesItem = ColumnSeriesItem(element);\\n var ser:ColumnSeries = ColumnSeries(series);\\n return(item.item.Country + &quot;:&quot; +&quot;&quot; + ser.yField.toString() +&quot;:&quot;+ item.yNumber);\\n }\\n </pre>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "maxColumnWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies the width of the columns, in pixels. The actual column width used is the smaller of this style and the <code>columnWidthRatio</code> property. Clustered columns divide this space proportionally among the columns in each cluster.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "minField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies the field of the data provider that determines the y-axis location of the bottom of a column. If <code>null</code>, the columns are based at the range minimum (or maximum, if the field value is negative). The default value is <code>null</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "offset",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies how far to offset the center of the columns from the center of the available space, relative to the category width. At the value of default 0, the columns are centered on the space. Set to -50 to center the column at the beginning of the available space. You typically do not set this property directly. The ColumnChart control manages this value based on its <code>columnWidthRatio</code> property.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Class",
        "qname": "renderDataType",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The subtype of ChartRenderData used by this series to store all data necessary to render. Subclasses can override and return a more specialized class if they need to store additional information for rendering.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "sortOnXField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Requests the columns be sorted from left to right before rendering. By default, the ColumnSeries renders columns in the order they appear in the data provider.  <p>If you use the <code>xField</code> property to determine the position of each column, columns can appear in a different order on the screen. Columns can be rendered in any order. However, some custom columns might rely on the columns being rendered from left to right.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.charts.chartClasses.StackedSeries",
        "qname": "stacker",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The StackedSeries associated with this BarSeries. The stacker manages the series's stacking behavior.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.charts.chartClasses.IAxis",
        "qname": "verticalAxis",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Defines the labels, tick marks, and data position for items on the y-axis. Use either the LinearAxis class or the CategoryAxis class to set the properties of the verticalAxis as a child tag in MXML or create a LinearAxis or CategoryAxis object in ActionScript.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "xField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies the field of the data provider that determines the x-axis location of the column. If <code>null</code>, Flex renders the columns in the order they appear in the data provider. The default value is <code>null</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "yField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies the field of the data provider that determines the y-axis location of the top of a column. If <code>null</code>, the ColumnSeries assumes the data provider is an Array of numbers and uses the numbers as values. The default value is <code>null</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.core.IFlexModuleFactory",
        "qname": "moduleFactory",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "createChildren",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "commitProperties",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "invalidateData",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "invalid", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "invalidateMapping",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "invalid", "type": "Boolean"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "renderData",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "method",
        "qname": "stack",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "stackedXValueDictionary", "type": "Object"},
        { "name": "previousElement", "type": "mx.charts.chartClasses.IStackable"}]}
      ,
      { "type": "method",
        "qname": "stackAll",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Object",
          "params": [{ "name": "stackedPosXValueDictionary", "type": "Object"},
        { "name": "stackedNegXValueDictionary", "type": "Object"},
        { "name": "previousElement", "type": "mx.charts.chartClasses.IStackable2"}]}
      ,
      { "type": "accessor",
        "access": "write-only",
        "return": "Object",
        "qname": "stackTotals",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The stack totals for the series.",
        "tags": [
        {  "tagName": "param",
               "values": ["totals The totals to set."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "applyItemRendererProperties",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Customizes the item renderer instances that are used to represent the chart. This method is called automatically whenever a new item renderer is needed while the chart is being rendered. You can override this method to add your own customization as necessary.",
        "tags": [
        {  "tagName": "param",
               "values": ["instance The new item renderer instance that is being created.", "cache The InstanceCache that is used to manage the item renderer instances."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "instance", "type": "mx.core.UIComponent"},
        { "name": "cache", "type": "mx.charts.chartClasses.InstanceCache"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "seriesRenderData",
        "namespace": "mx_internal",
        "bindable": [],
        "details": [],
        "deprecated": {}}]
  }
