基于更改 dataProvider 的动画折线图

发布于 2024-11-19 12:18:52 字数 222 浏览 9 评论 0原文

我需要能够根据 SeriesInterpolate 数据效果对 LineChart 进行动画处理(我将有一个 dataproiders 数组)。我想要一个“播放”按钮,该按钮将:

  1. 使用数组中的第一个数据提供程序初始化折线图
  2. 启动动画并等待动画完成,然后加载第二个数据提供程序
  3. 重复该过程,直到加载数组中的所有数据提供程序

有什么想法吗?

I need to be able to animate a LineChart based on the SeriesInterpolate data effect (I will have an Array of dataproiders). I want to have a "Play" button that will:

  1. initialize the LineChart with the first dataprovider in the array
  2. start the animation and wait for the animation to finish before loading the second data provider
  3. repeat the process until all data providers in the Array are loaded

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梨涡少年 2024-11-26 12:18:52

没问题,您只需使用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()"/>

有道理吗?

No problem, you're just going to use the effectEnd event

So on your effect, you'll want to attach the effectEnd listener, something like this :

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

Then in your code, you need to store your datasets, and an index of which you're currently viewing, and finally the method that switches them.

        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++;
        }

As far as the play button, all it needs to do is make the first call to fetchNextDataset();

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

Make sense?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文