【发布时间】:2012-03-02 12:32:29
【问题描述】:
我对 Adobe Flex SDK 4.5 和 4.5.1 中的笛卡尔图表有疑问。也许这是一个错误,因为它不在 SDK 4.0、4.1 和 4.6 中。或者这只是我的代码的问题。
我做了一点example project 在笛卡尔图表(线/面积/柱/条)中的系列数据范围,有点像谷歌金融图表。当我将所有系列添加到图表时,问题没有发生。只有当我有多个系列并删除一个或多个系列而不是数据范围时,系列数据才会被压缩:
当我覆盖当前数据时,水平轴似乎没有改变或没有得到图表数据改变的更新。
这是我项目的主要代码,我在其中向折线图添加系列,删除系列并覆盖所有图表系列。
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;
}
有人遇到同样的问题或知道如何以其他方式删除系列?
【问题讨论】:
-
您能否更明确地说,您在哪种 Flex SDK 下目睹了这种错误行为?我已经使用 Flex 4.6 SDK 测试了您的示例,我无法得到所附 [图表图像] 屏幕截图所示的情况。
-
@JabbyPanda 谢谢你的回复。仅适用于 SDK 4.5 和 4.5.1
-
没错,您遇到的这个问题发生在 SDK 4.5.1 上,而不是 4.6。如果您无法选择完全升级,我建议您只替换 4.6 SDK 中的“charts.swc”库,它对我有用。
-
我还在 SDK 4.5.1 和 SDK 4.6 中的图表类之间做了一些比较。更改确实很小,但我未能将 4.5.1 SDK 中的 solumn CartesianChart 类替换为 4.6 SDK 中的对应类,我得到了一些与默认样式值相关的错误,如果你走这条路,也许你会更幸运。
-
@JabbyPanda 再次感谢您,这真是个好主意。我们将升级到 SDK 4.6,但我们遇到了一些性能问题,而 SDK 4.5.1 没有这些问题。所以你只是将“charts.swc”从 SDK 4.6 复制到 SDK 4.5.1?它不适合我。
标签: apache-flex charts flex4.5 flex-charting