2010-06-04 49 views
1

我为图形中的每个条形图都设置了一组滑块。我用所有的滑块绑定了它们的对应条。当我更改滑块的值时,ArrayCollection中的值发生变化,我也使用了使用滑动条事件动态更改融合图表值

singleData.refresh();

但图表中的值保持不变。我该如何更新滑动条值的更改中的图表中的值。

这里是我的代码:

<mx:Script> 
    <![CDATA[ 
     import mx.events.SliderEvent; 
     import mx.collections.ArrayCollection; 

     [Bindable] 
     private var singleData:ArrayCollection=new ArrayCollection([ 
       {label:'Diego', value:'22'}, 
       {label:'Steve', value:'20'}, 
     ]); 

     private function updateChart(event:SliderEvent, index:Number):void{ 
      singleData.getItemAt(index).value = String(event.value); 
      singleData.refresh(); 
     } 
    ]]> 
</mx:Script> 


<ns1:FusionCharts x="10" y="10" FCChartType="Column3D" width="500"> 
    <ns1:FCChartData FCParams="{chartParam}" FCData="{singleData}" /> 
</ns1:FusionCharts> 

<mx:VBox x="10" y="318"> 
    <mx:HBox> 
     <mx:Label text="Diego:" width="100"/> 
     <mx:HSlider id="SliderDiego" change="{updateChart(event,0)}" liveDragging="true" value="{singleData.getItemAt(0).value}" minimum="0" maximum="100" width="120"/>      
    </mx:HBox> 
    <mx:HBox> 
     <mx:Label text="Steve:" width="100"/> 
     <mx:HSlider id="SliderSteve" change="{updateChart(event,1)}" liveDragging="true" value="{singleData.getItemAt(1).value}" minimum="0" maximum="100" width="120"/>      
    </mx:HBox> 
</mx:VBox> 

回答

1

的图表不保留渲染后的结合。在更新图表函数中再次设置新数据并呈现图表。在此之前,还要为图表设置一个ID。

<ns1:FusionCharts id="FC1" x="10" y="10" FCChartType="Column3D" width="500"> 

现在,在脚本做到这一点:http://www.fusioncharts.com/flex/docs/charts/Contents/case_changeData.html

private function updateChart(event:SliderEvent, index:Number):void{ 
     singleData.getItemAt(index).value = String(event.value); 
     singleData.refresh(); 
     FC1.FCData(singleData); 
     FC1.FCParams(chartparam); 
     FC1.FCRender(); 
} 

从引用