彻底隐藏Flex Chart中的Series

通常,如果Chart中已经有多个Series,我们一般不会直接删除Series,最好将它隐藏,再次需要时直接显示而不是重新请求数据添加。是不是将Series的visible属性设置成false就行了?并非如此,Series是可以隐藏但轴没有更新。

http://flexdevtips.blogspot.com/2009/10/linechart-with-checkbox-legend.html,这篇文章给出了一种解决方案,就是通过遍历每个Series的单个数据项目算出所有项目的最大值和最小值,再比较Series对象数组元素,算出当前的最大值和最小值,最后赋值给轴的maximum和minimum的属性。这种不法不错,但有执行效率的问题。还有就是如果不只一个轴需要更新,这种方法比较麻烦。下面提供一种更好的办法。

思路是这样的,隐藏Series时,从内存中删除图表数据的Series对象数组的某个Series,显示时,再根据其index加入到对象数组相应的位置。

点击此处查看该实例最终效果,点击此处下载该实例的源码。

说明:

1. Legend是用DataGroup自定义的,因为默认下,如果点击图例元素的标记和文本之间的间隙,是不能触发LegendMouseEvent事件的。

2. 删除显示代码都写在ItemRenderer中了,这样似乎简捷一点。不过最好通过在ItemRenderer中派发事件来解藕;

3. 删除Series对象数组时,index要重新计算一下,index等于当前Series在上一次操作后返回的对象数组(所有Series都可视)中的索引。

上一篇上一篇: Adobe AIR 1.5 Cookbook下载
下一篇下一篇: Flex对象 vs AS3对象
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: Chart
相关相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭