0

我遇到了这个很棒的教程,关于如何通过在 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() 中的覆盖函数是什么?

谢谢

4

2 回答 2

2

几天前,我在 PieSeries 上遇到了同样的问题。

我还没有找到为什么 'filterDataPoints' 函数中的 '_renderData.filteredCache' 为空,但同时我已经解决了以这种方式扩展 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);
    }

}
}

我希望它可以帮助你

于 2012-12-12T09:12:38.297 回答
0

如果您询问如何在访问图表点时解决“filterDataPoints”问题,您只需创建自己的 Series 类,将 PlotSeries 中的代码复制粘贴到其中并更改运行时失败的任何内容。你得到什么样的错误?

于 2011-09-08T06:21:02.917 回答