I am getting an actionscript error when I switch from clustered type
to stacked type when an interpolate effect is defined as a showdataeffect.
If I don't have any effect defined,the chart type switch works as a charm.
See below the stack-trace and the source code.
Any pointer or workaround is welcomed.
TypeError: Error #1009: Cannot access a property or method of a null
object reference.
at
mx.charts.chartClasses::NumericAxis/filterCache()[C:\dev\flex_201_gmc\sdk\frameworks;mx\charts\chartClasses;NumericAxis.as:576]
at
mx.charts.series::ColumnSeries/mx.charts.series:ColumnSeries::updateFilter()
at
mx.charts.chartClasses::Series/mx.charts.chartClasses:Series::validateTransform()[C:\dev\flex_201_gmc\sdk\frameworks;mx\charts\chartClasses;Series.as:962]
at
mx.charts.chartClasses::Series/getRenderDataForTransition()[C:\dev\flex_201_gmc\sdk\frameworks;mx\charts\chartClasses;Series.as:1013]
at mx.charts.effects.effectClasses::SeriesInterpolateInstance/play()
at
mx.effects::EffectInstance/startEffect()[C:\dev\flex_201_borneo\sdk\frameworks;mx\effects;EffectInstance.as:502]
at
mx.effects.effectClasses::ParallelInstance/play()[C:\dev\flex_201_borneo\sdk\frameworks;mx\effects\effectClasses;ParallelInstance.as:197]
at
mx.charts.chartClasses::ChartBase/mx.charts.chartClasses:ChartBase::advanceEffectState()[C:\dev\flex_201_gmc\sdk\frameworks;mx\charts\chartClasses;ChartBase.as:1588]
at
mx.charts.chartClasses::ChartBase/mx.charts.chartClasses:ChartBase::updateDisplayList()[C:\dev\flex_201_gmc\sdk\frameworks;mx\charts\chartClasses;ChartBase.as:1294]
at
mx.charts.chartClasses::CartesianChart/mx.charts.chartClasses:CartesianChart::updateDisplayList()[C:\dev\flex_201_gmc\sdk\frameworks;mx\charts\chartClasses;CartesianChart.as:960]
at
mx.core::UIComponent/validateDisplayList()[C:\dev\flex_201_borneo\sdk\frameworks;mx\core;UIComponent.as:5823]
at
mx.managers::LayoutManager/mx.managers:LayoutManager::validateDisplayList()[C:\dev\flex_201_borneo\sdk\frameworks;mx\managers;LayoutManager.as:600]
<?xml version="1.0"?>
<!-- Simple example to demonstrate the ColumnChart and BarChart
controls. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var medalsAC:ArrayCollection = new ArrayCollection( [
{ Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
{ Country: "China", Gold: 32, Silver:17, Bronze: 14 },
{ Country: "Russia", Gold: 27, Silver:27, Bronze: 38 } ]);
private var medalsAC2:ArrayCollection = new ArrayCollection( [
{ Country: "USA", Gold: 15, Silver:29, Bronze: 19 },
{ Country: "China", Gold: 12, Silver:27, Bronze: 24 },
{ Country: "Russia", Gold: 17, Silver:17, Bronze: 18 } ]);
]]>
</mx:Script>
<mx:SeriesInterpolate id="interpolateIn" duration="1000"/>
<mx:Panel title="ColumnChart and BarChart Controls Example"
height="100%" width="100%" layout="horizontal">
<mx:VBox height="100%" width="100%">
<mx:HBox width="100%">
<mx:Spacer width="100%" />
<mx:RadioButton groupName="results" label="Result 1"
selected="true" click="column.dataProvider=medalsAC;"/>
<mx:RadioButton groupName="results" label="Result 2"
click="column.dataProvider=medalsAC2;"/>
<mx:Spacer width="200" />
<mx:RadioButton groupName="chartType" label="Stacked"
click="column.type='stacked'"/>
<mx:RadioButton groupName="chartType" label="Clustered"
selected="true" click="column.type='clustered'"/>
<mx:Spacer width="100%" />
</mx:HBox>
<mx:HBox height="100%" width="100%">
<mx:ColumnChart id="column" height="100%" width="100%"
type="clustered"
paddingLeft="5" paddingRight="5"
showDataTips="true" dataProvider="{medalsAC}">
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="Country"/>
</mx:horizontalAxis>
<mx:series>
<mx:ColumnSeries xField="Country" yField="Gold"
displayName="Gold" showDataEffect="{interpolateIn}" />
<mx:ColumnSeries xField="Country" yField="Silver"
displayName="Silver" showDataEffect="{interpolateIn}" />
<mx:ColumnSeries xField="Country" yField="Bronze"
displayName="Bronze" showDataEffect="{interpolateIn}" />
</mx:series>
</mx:ColumnChart>
<mx:Legend dataProvider="{column}"/>
</mx:HBox>
</mx:VBox>
</mx:Panel>
</mx:Application>