Анимация LineChart на основе изменения dataProvider - PullRequest
0 голосов
/ 08 июля 2011

Мне нужно иметь возможность анимировать линейную диаграмму на основе эффекта данных SeriesInterpolate (у меня будет массив данных для вышивания).Я хочу иметь кнопку «Воспроизведение», которая:

  1. инициализирует LineChart с первым поставщиком данных в массиве
  2. , запускает анимацию и ждет завершения анимации перед загрузкойвторой поставщик данных
  3. повторять процесс до тех пор, пока все поставщики данных в массиве не загрузятся

Есть мысли?

1 Ответ

2 голосов
/ 08 июля 2011

Нет проблем, вы просто собираетесь использовать событие 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++;
        }

Что касается кнопки воспроизведения, все, что ей нужно сделать, это сделать первый вызов fetchNextDataset ();

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

Имеет смысл?

...