2011-07-07 24 views
0

我需要能夠根據SeriesInterpolate數據效果(我將有一個數據抖動陣列)爲LineChart設置動畫。我希望有一個「播放」按鈕,即會:基於改變數據的動畫線圖提供者

  1. 陣列與第一數據提供程序初始化線型圖
  2. 啓動動畫和等待動畫加載第二個數據提供
  3. 前完成重複該過程,直到陣列中的所有數據提供者都被加載

有什麼想法?

回答

2

沒問題,你只是要使用effectEnd事件

所以你的影響,你要附加的effectEnd在監聽器,這樣的事情:

<mx:SeriesInterpolate id="interpolateIn" duration="1000" effectEnd="fetchNextDataset()"/> 

然後在你的代碼,您需要存儲您的數據集以及您當前正在查看的索引,最後是切換它們的方法。

 private var datasets  :ArrayCollection; // fill with your datasets    
     private var currentDataset : uint = 0;   // holds current dataset 

     private function fetchNextDataset() : void { 
      if(currentDataset >= datasets.length) return; // out of range, played em all! 
      candlestickchart.dataProvider = datasets.getItemAt(currentDataset); 
      currentDataset++; 
     } 

就play按鈕而言,它只需要對fetchNextDataset()進行第一次調用;

<mx:Button label="play" click="fetchNextDataset()"/> 

有意義嗎?

+0

完全!非常感謝你。 我過分複雜的問題。 :) – Mino

+0

我們都會不時地這樣做:D – Nate

+0

請記住,如果您想在播放它們之間暫停一段時間,您可以添加一個開始延遲,並且如果您想要暫停功能,請將效果結束監聽器移動到該按鈕以播放它(以及對fetchNext的調用),讓您可以輕鬆地創建一個暫停按鈕,只需刪除effectEnd偵聽器:D – Nate