Ошибка масштабирования Flex PlotChart в findDataPoints()

Я наткнулся на этот замечательный учебник о том, как увеличить масштаб диаграммы, нарисовав прямоугольник в LineChart, чтобы увеличить его ( http://blog.ninjacaptain.com/2010/03/flex-chart-zoom-window/), но я вместо этого я пытаюсь применить его к PlotChart, и у меня возникают проблемы при попытке отобразить подсказки со следующей ошибкой:

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, так как он находится в МЖК.

Кто-нибудь пытался применить следующее к PlotChart вместо этого и получил DataTips, чтобы показать? Что такое функция переопределения в findDataPoints()?

Спасибо

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);
    }

}
}

Я надеюсь, что это может помочь вам

Если вы спрашиваете, как решить проблему "filterDataPoints" при доступе к точкам диаграммы, вам просто нужно создать собственный класс Series, скопировать в него код из PlotSeries и изменить все, что не удалось во время выполнения. Какую ошибку вы получаете?

Другие вопросы по тегам