我对Adobe Flex SDK 4.5和4.5.1中的笛卡尔图表有问题。也许这是一个错误,因为它不在SDK 4.0、4.1和4.6中。或者这只是我的代码问题。
我做了一个小的例子项目,在CartesianChart(Line/Area/Column/Bar)中覆盖系列数据,有点像谷歌金融图表。当我将所有系列添加到图表中时,问题没有出现。只有当我有多个系列,并删除一个或多个系列和数据范围时,系列数据才会被压缩:
图表图像
当我覆盖当前数据时,横轴似乎没有改变,或者没有得到图表数据改变的更新。
这是我项目的主要代码,我将序列添加到折线图中,删除一个序列并覆盖所有图表序列。
public function addChartSeries(name:String, dataProvider:Array):void
{
var lineSeries:LineSeries = new LineSeries();
lineSeries.xField = "date";
lineSeries.yField = "value";
lineSeries.displayName = name;
lineSeries.dataProvider = dataProvider;
var mySeries:Array = new Array();
mySeries = lineChart.series;
mySeries.push(lineSeries);
lineChart.series = mySeries;
}
public function removeSeries(index:int):void
{
var mySeries:Array = new Array();
mySeries = lineChart.series;
mySeries.splice(index, 1);
lineChart.series = mySeries;
}
private function changeDataProvider():void
{
var series:Array = lineChart.series;
for (var i:int = 0; i < series.length; i++)
{
var lineSeries:LineSeries = series[i];
var item:ChartItem = chartItems.getItemAt(i) as ChartItem;
lineSeries.dataProvider = item.data.slice(leftindex, rightIndex);
}
lineChart.series = series;
}
有人遇到过同样的问题,或者知道如何用另一种方式删除一个系列吗?
非常感谢JabbyPanda,他在上面的评论描述了如何解决这个问题。只需将SDK 4.6中的charts.swc
"替换"为SDK 4.5.1中的即可。