Flex 4中LineSeries的两个Bug

Flex 4中LineSeries有两个Bug,使用SolidColorStroke自定义lineStroke后,DataTip无边框,Legend marker(图例标记)的填充色为始终为黑色。点击此处查看这两个Bug,下面我们将讲解造成这两个Bug的原因及解决方案。

打开Flex 4 SDK中的LineSeries.as,DataTip的边框是在findDataPoints方法中设置的,定位到该1543行:if (istroke is Stroke),Stroke是SolidColorStroke的子类,因此这个代码块中是不会执行的。那为什么图例标记的填充色为始终为黑色呢?Legend使用Chart中各个Series的legendData作为默认数据提供者。定位到get legendData()方法,可以看出,图例以LineSeriesLegendMarker实例作为默认标记,LineSeriesLegendMarker辅助类,按F3打开代码定义,定位到2101行:if (Stroke is Stroke)。问题就出在这个代码块中,我想肯定是Flex 4 SDK开发工程师的粗心了。

明白了原因,具体怎么改就不难了,请参看源码中我扩展LineSeries的子类LineSeriesEx。

注意:如果是升级造成Bug,在Flash Builder中Debug的一个快捷方法就是:Copy源码,然后直接定位到时警告处。

当然,如果我们仍使用Stroke来自定义lineStroke,就不存在上述两个Bug。不过,既然建议在Flex 4 中使用SolidColorStroke来代替Stroke,Adobe最好能在下一个版本中修正这两个Bug。

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

来源文章来自: 本站原创
引用通告引用通告: 查看所有引用 | 我要引用此文章
标签Tags: Flex4 Chart Debug
相关日志相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.