2010-06-04 65 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(); 
} 

從引用