代码之家  ›  专栏  ›  技术社区  ›  Matt Dell

弹性图表标签在数据刷新时不更新?(PIC)

  •  0
  • Matt Dell  · 技术社区  · 17 年前

    alt text http://www.mattdell.com/hostedfiles/flexchartissue.bmp

    我遇到了一个问题,我的弹性饼图上的图表标签在刷新数据时不会消失。在上图中,左/前图表是默认情况下图表加载的方式。通过从下拉列表中选择另一项,图表将更改为右/后图表,但“有风险”标签不会消失。另一个选择也是如此,“在职”不会消失。

    有没有其他人发生过这种事?我找不到关于这个的任何信息!

    谢谢!

    -马特

    3 回复  |  直到 14 年前
        1
  •  4
  •   Eric Belair    17 年前

    我遇到这个问题,花了一段时间才找到解决这个bug的方法。

    为了解决这个问题,我在设置了数据提供程序的基础集合以及集合更改时设置了Piechart系列:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:PieChart xmlns:mx="http://www.adobe.com/2006/mxml"
        dataProvider="{dataForPieChart}">
        <mx:Script>
            <![CDATA[
                import mx.events.CollectionEvent;
                import mx.collections.ArrayCollection;
                import mx.charts.series.PieSeries;
    
                [Bindable]
                private var _dataForPieChart:ArrayCollection;
    
                public function set dataForPieChart(value:ArrayCollection):void
                {
                    _dataForPieChart = value;
    
                    /* Add a Collection Change Event Listener to the Collection. */
                    _dataForPieChart.addEventListener(
                        CollectionEvent.COLLECTION_CHANGE, 
                        dataForPieChart_collectionChangeHandler);
    
                    reloadPieSeries();
                }
    
                public function get dataForPieChart():ArrayCollection
                {
                    return _dataForPieChart;
                }
    
                private function dataForPieChart_collectionChangeHandler(
                    event:CollectionEvent):void
                {
                    reloadPieSeries();
                }
    
                private function reloadPieSeries():void
                {
                    series = new PieSeries();
    
                    series.field = "myValue";
    
                    series.labelPosition = "callout";
                }
            ]]>
        </mx:Script>
    </mx:PieChart>
    
        2
  •  1
  •   mweiss    17 年前

    在这两种情况下,您的数据是什么样子的?我猜您的序列数据值为0,这可能导致标签呈现,饼图上没有任何可见切片。如果字段值为0,请尝试用0值筛选数据或使用自定义标签函数不显示标签。

    (注意,这只是一个猜测)

        3
  •  0
  •   sjngm quinti    14 年前

    EricBelair提出的解决方案对我很有用,这是我在函数中的代码,它在PCGrafico Piechart的数据提供者Infopa中更新de数据。我希望如果有人也经历过这种情况,它会有所帮助

    infoPA=evt.result.data.infoPA.estado;
    
    PCgrafico.series=null;
    var vectorSeries:Array=new Array();
    
    var series:PieSeries=new PieSeries();
    series.field="totalPA";            
    series.nameField="estadoPA";
    series.setStyle("labelPosition", "callout");
    series.setStyle("showDataEffect", effect);
    vectorSeries.push(series);
    PCgrafico.series=vectorSeries;
    
    推荐文章