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。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值