我在图表中为每个条形图设置了一组滑块。我已将所有滑块绑定到相应的条形图上。当我更改滑块的值时,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>
答案 0 :(得分:1)
图表在渲染后不会保留绑定。在更新图表功能中,再次设置新数据并渲染图表。在此之前还要为图表设置一个id。
<ns1:FusionCharts id="FC1" x="10" y="10" FCChartType="Column3D" width="500">
现在在脚本中执行此操作:
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();
}
参考:http://www.fusioncharts.com/flex/docs/charts/Contents/case_changeData.html