Flex: динамически созданная серия не отображается на графике? - PullRequest
0 голосов
/ 13 октября 2011

У меня следующий класс:

package my.controls.charts.series
{
    import mx.charts.series.LineSeries;
    import mx.collections.ArrayCollection;
    import mx.graphics.SolidColorStroke;

    import my.controls.charts.ICommonCharts;

    public class TimeLineSeries extends LineSeries implements ICommonCharts
    {
        [Bindable]
        protected  var dataProviderLineSeries : ArrayCollection;
        public     var rawData                : Array; 

        public function TimeLineSeries( seriesName : String )
        {
            super();
            this.displayName  = seriesName;
            this.yField       = "value";
            this.xField       = "dateBegin";

            this.sortOnXField = true;
            this.filterData   = true;           

            this.setStyle( "form", "segment" ); 

            var stroke : SolidColorStroke = new SolidColorStroke();
                stroke.color    = 0xFF0000;
                stroke.weight   = 1;
            this.setStyle( "lineStroke", stroke );

            rawData                = new Array();
            dataProviderLineSeries = new ArrayCollection();
            this.dataProvider      = dataProviderLineSeries;
        }

        public function Clear() : void
        {
            rawData = [];
            dataProviderLineSeries.removeAll();
        }

        public function ApplyData() : void
        {
            dataProviderLineSeries.removeAll();
            dataProviderLineSeries = new ArrayCollection( rawData );
            dataProviderLineSeries.refresh();

        }
    }
}

в приложении я пытаюсь сделать следующее:

dinamicSeries: Array = new Array (); mySeries: TimeLineSeries = new TimeLineSeries ('chronos'); mySeries.rawData = randomData (); // это функция, которая получает случайные данные mySeries.ApplyData (); dinamicSeries.push (mySeries);
mainChart.series = dinamicSeries;

Имя новой серии появляется на диаграмме, но данные остаются, и диаграмма всегда остается пустой. - Что я не так делаю?

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Повлияли ли вы на вертикальную ось недавно созданного сериала?

1 голос
/ 13 октября 2011

Вам нужно сделать публичную переменную rawData в паре получатель / установщик, чтобы вы могли заполнить ее ArrayCollection.Итак:

protected var _rawData:Array;

public function get rawData():Array {
    return _rawData;
}
public function set rawData(value:Array):void {
    if (value != _rawData) {
       _rawData = value;
       dataProviderLineSeries.source = value;
    }
}
...