【问题标题】:Flex : dynamically created series doesnt show on the chart?Flex:动态创建的系列不显示在图表上?
【发布时间】:2011-10-13 14:56:45
【问题描述】:

我有以下课程:

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;

新系列名称出现在图表上,但数据确实出现了,并且图表始终保持空白。 - 我做错了什么?

【问题讨论】:

    标签: actionscript-3 apache-flex flex4 flex4.5


    【解决方案1】:

    您是否影响了新创建的系列的垂直轴?

    【讨论】:

    【解决方案2】:

    您需要将 public var rawData 设置为 getter/setter 对,以便使用它填充 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;
        }
    }
    

    【讨论】:

    • 你好,艾米。这样每次我添加元素时它都会刷新数据。不可取的东西。这不会解决我认为丢失的图纸......:|
    猜你喜欢
    • 2011-06-14
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多