2010-06-04 2 views
1

У меня есть набор слайдеров для каждого бара на графике. Я привязал все слайдеры с соответствующими барами. Когда я изменяю значение ползунка, значение в ArrayCollection изменяется, и я также использовалДинамическое изменение значения графика слияния с событием слайдера в flex

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

Графики не сохраняет привязку после рендеринга. В функции диаграммы обновления снова установите новые данные и диаграмму рендеринга. До этого также устанавливается идентификатор диаграммы.

<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

Смежные вопросы