findDataPoints()中的Flex PlotChart缩放错误

时间:2011-09-08 02:37:19

标签: flex charts zoom flex-charting flex-charts

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

由于

2 个答案:

答案 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中复制粘贴代码并更改运行时失败的任何内容。你得到什么样的错误?