alt text http://www.mattdell.com/hostedfiles/flexchartissue.bmp
我遇到的问题是,当刷新数据时,我的Flex饼图上的图表标签不会消失。在上图中,左/前图表是默认情况下图表的加载方式。通过从下拉列表中选择另一个项目,图表将更改为右侧/后图表,但“有风险”标签不会消失。另一种选择也是如此,其中“在工作中”不会消失。
有没有其他人发生过这种情况?我找不到任何关于此的信息!
-Matt
答案 0 :(得分:4)
我遇到了这个问题,我花了一些时间来找出这个bug的解决方法。
要解决这个问题,我设置了PieChart系列,当设置了dataProvider的底层Collection时,以及Collection更改的任何时候:
<?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>
答案 1 :(得分:1)
在这两种情况下,您的数据是什么样的?我的猜测是你有一个值为0的系列数据,这可能导致标签呈现而饼图上没有任何可见的切片。尝试使用0值过滤掉数据或使用自定义标签功能在字段值为0时不显示标签。
(注意这只是猜测)
答案 2 :(得分:0)
Eric Belair提出的解决方案对我很有用,这是我的函数中的代码,它更新了infoPA中的数据,这是PCgrafico PieChart的dataProvider。我希望如果有人也遇到这种情况会有所帮助
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;