LineChart series 的问题

fluentlymos 2010-10-06 03:29:48
前端flex,使用BlazeDs从数据库读取数据。返回数据类型为2个数组,分别是一维数组filedName和二维数组values。
fieldName记录x轴坐标显示名称。values记录三个LineSeries需要显示的数据。
使用flash builder自带的数据绑定。将数据源绑定为 dataProvider="{getReportResult.lastResult[0].values}",即二维数组上。数据成功显示。
在横坐标设置时,做如下设置
<mx:horizontalAxis>
<mx:CategoryAxis id="categoryAxis" dataProvider="{getReportResult.lastResult[0].fieldName}" labelFunction="categoryAxisLabelFun"/>
</mx:horizontalAxis>
即将横坐标的数据源设置成fieldName。并且使用函数categoryAxisLabelFun()做个性化设置如下:

private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : CategoryAxis = axis;
temp.categoryField = item as String;

return temp.categoryField ;
}

LineSeries相关标签设置如下:

<mx:series>
<mx:LineSeries id="lineSeries1" displayName="OFI" yField="{0}"/>
<mx:LineSeries id="lineSeries2" displayName="Minor NC" yField="{1}"/>
<mx:LineSeries id="lineSeries3" displayName="Major NC" yField="{2}"/>
</mx:series>


此时发现lineSeries1无法显示出来,其他正常。并且x轴坐标能够显示。
再加一句<mx:LineSeries id="lineSeries1" displayName="OFI" yField="{0}"/>
后又能够显示出来,但是总数和显示的个数总相差一。

感觉好像是categoryAxisLabelFun函数中的temp.categoryField = item as String; 有问题。但是不是很明白到底是什么原因,如何解决?望高人指点
...全文
180 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fluentlymos 2010-10-09
自己顶下,没人了解?
回复
fluentlymos 2010-10-07
[Quote=引用 2 楼 leemiki 的回复:]
引用 1 楼 fluentlymos 的回复:
问题已经解决,只需要返回item 即可
但是仍旧不是很明白,为什么重写axis.categoryField 后就少了一个LineSeries
请大侠将关注重点放在这个问题上,不胜感激。


我也用过几次LineChart,也没碰到你说的这种问题

API本身没有问题,肯定是你哪里写法上有问题!

还有categoryAxisLab……
[/Quote]

我也觉得是写法上的问题。感觉是categoryAxisLabelFun函数里边设置categoryField属性,把什么东西冲掉了。如果这个函数里边不做设置categoryField属性,而是直接返回item,就都正常了。

之所以没有直接设置成<mx:CategoryAxis categoryField="{getReportResult.lastResult[0].fieldName}"/> 是因为这么设置x轴仍旧没有显示,这个我也不是很清楚为什么。这么写x轴就是空的。
回复
leemiki 2010-10-06
[Quote=引用 1 楼 fluentlymos 的回复:]
问题已经解决,只需要返回item 即可
但是仍旧不是很明白,为什么重写axis.categoryField 后就少了一个LineSeries
请大侠将关注重点放在这个问题上,不胜感激。
[/Quote]

我也用过几次LineChart,也没碰到你说的这种问题

API本身没有问题,肯定是你哪里写法上有问题!

还有categoryAxisLabelFun这个函数我也看到你做了什么事情,就直接设了下categoryField

这样设置不行??<mx:CategoryAxis categoryField="显示字段"/>
回复
fluentlymos 2010-10-06
问题已经解决,只需要返回item 即可
但是仍旧不是很明白,为什么重写axis.categoryField 后就少了一个LineSeries
请大侠将关注重点放在这个问题上,不胜感激。
回复
相关推荐
发帖
Flex
创建于2007-12-13

4328

社区成员

多媒体/设计 Flex
申请成为版主
帖子事件
创建了帖子
2010-10-06 03:29
社区公告
暂无公告