我遇到了一个很棒的教程,介绍如何通过在LineChart中绘制一个矩形来放大图表(http://blog.ninjacaptain.com/2010/03/flex-chart-zoom-window/),但是我正在尝试将它应用到PlotChart而我是试图让DataTips显示以下错误时遇到问题:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.charts.series::PlotSeries/findDataPoints()[E:\dev\4.5.1\frameworks\projects\charts\src\mx\charts\series\PlotSeries.as:961]
at mx.charts.chartClasses::ChartBase/findDataPoints()[E:\dev\4.5.1\frameworks\projects\charts\src\mx\charts\chartClasses\ChartBase.as:2069]
at mx.charts.chartClasses::ChartBase/mouseClickHandler()[E:\dev\4.5.1\frameworks\projects\charts\src\mx\charts\chartClasses\ChartBase.as:4823]
提到了关于扩展LineChartSeries并覆盖findDataPoints()函数的链接,但在尝试为扩展PlotSeries.as做同样的事情之后,sortOnXField似乎未定义,我无法访问PlotSeries.as,因为它是在swc。
是否有人尝试将以下内容应用于PlotChart并获得DataTips显示? findDataPoints()中的覆盖函数是什么?
由于
答案 0 :(得分:2)
前几天我和PieSeries有同样的问题。
我还没有找到为什么'_renderData.filteredCache'在'filterDataPoints'函数中为空,但同时我已经解决了以这种方式扩展PieSeries类的问题:
package com.eque.report.model {
import mx.charts.series.PieSeries;
public class MyPieSeries extends PieSeries {
public function MyPieSeries () {
super();
}
/**
* 'findDataPoints' function has been overriden in order to prevent
* '_renderData.filteredCache' is null.
*/
override public function findDataPoints(x:Number, y:Number, sensitivity:Number):Array {
if (renderData.filteredCache == null) {
renderData.filteredCache = [];
}
return super.findDataPoints(x, y, sensitivity);
}
}
}
我希望它可以帮到你
答案 1 :(得分:0)
如果您正在询问如何在访问图表点时解决“filterDataPoints”问题,您只需创建自己的Series类,从PlotSeries中复制粘贴代码并更改运行时失败的任何内容。你得到什么样的错误?