flex chart局部放大的问题

kocoguan2 2009-01-20 12:43:34
请教关于flex chart局部放大的问题。在用FLEX CHART做成的CHART图表中,怎么样可以做到选择图表中的某一部分,可以放大选中的那一部分?
就跟这个事例一样的效果。。。http://www.amcharts.com/line/logarithmic-scale-chart/

原来的X轴里有10个点,之后你用鼠标在中间4-7之间选择,放开鼠标后,整个图就显示4-7之间的线图。也就是X轴变成了4,5,6,7


写了个简单的BarChart
怎么实现上述效果呢
<?xml version="1.0" encoding="UTF-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
title="graph" layout="absolute"
>

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Name:"SUB_5",
Start:100, Time:155,
Start2:170, Time2:200 },
{Name:"SUB_4",
Start:80, Time:125,
Start2:150, Time2:180 },
{Name:"SUB_3",
Start:50, Time:120,
Start2:140, Time2:175 },
{Name:"SUB_2",
Start:30, Time:110,
Start2:130, Time2:160 },
{Name:"SUB_1",
Start:10, Time:45,
Start2:120, Time2:150},
{Name:"MAIN",
Start:0, Time:10,
Start1:20, Time1:30,
Start2:40, Time2:50,
Start3:70, Time3:80,
Start4:90, Time4:100,
Start5:110, Time5:120,
Start6:160, Time6:170,
Start7:180, Time7:1000 }
]);
]]>
</mx:Script>
<mx:SolidColor id="sc1" color="green" />
<mx:BarChart id="chart" dataProvider="{expenses}"
height="200" left="0" top="0" right="0" barWidthRatio="1.0"
showDataTips="true" selectionMode="multiple">
<mx:verticalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Name"
/>
</mx:verticalAxis>
<mx:series>
<mx:BarSet>
<mx:BarSeries id="series1"
yField="Name"
xField="Time"
displayName="Time"
minField="Start"
fill="{sc1}"
selectable="true"
/>
<mx:BarSeries
yField="Name"
xField="Time2"
displayName="Time2"
minField="Start2"
fill="{sc1}"
selectable="true"

/>
<mx:BarSeries
yField="Name"
xField="Time3"
displayName="Time3"
minField="Start3"
fill="{sc1}"
selectable="true"

/>
<mx:BarSeries
yField="Name"
xField="Time4"
displayName="Time4"
minField="Start4"
fill="{sc1}"
selectable="true"

/>
<mx:BarSeries
yField="Name"
xField="Time5"
displayName="Time5"
minField="Start5"
fill="{sc1}"
selectable="true"

/>
<mx:BarSeries
yField="Name"
xField="Time6"
displayName="Time6"
minField="Start6"
fill="{sc1}"
selectable="true"

/>
<mx:BarSeries
yField="Name"
xField="Time7"
displayName="Time7"
minField="Start7"
fill="{sc1}"
selectable="true"

/>
</mx:BarSet>
</mx:series>
</mx:BarChart>
</mx:WindowedApplication>
...全文
528 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qyfbq 2011-04-22
  • 打赏
  • 举报
回复
做这个真的很烦。。。
kocoguan2 2009-01-21
  • 打赏
  • 举报
回复
upup
kocoguan2 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 herowach 的回复:]
改变dataProvider就可以了,我做的chart没有象你那样,而是将dataProvider与一个HSLIDE关联起来了,通过两个滑块控制X轴的范围,你那个应该可以听itemClick记录index,然后通过两个index改变,不过感觉不太好。
[/Quote]

我想的是通过鼠标前后两次点击的位置计算出一个区间,再根据这个区间得出新的数据组合,然后以这个新的数据组合作为新的dataProvider
问题是现在如何取得那个区间,还有对于上面所说的数据组合如何通过这个区间得出新的数据组合,不知道怎么去做
给点提示呢~~~谢谢哈
kocoguan2 2009-01-21
  • 打赏
  • 举报
回复
继续等。。。
herowach 2009-01-20
  • 打赏
  • 举报
回复
改变dataProvider就可以了,我做的chart没有象你那样,而是将dataProvider与一个HSLIDE关联起来了,通过两个滑块控制X轴的范围,你那个应该可以听itemClick记录index,然后通过两个index改变,不过感觉不太好。
kocoguan2 2009-01-20
  • 打赏
  • 举报
回复
upupup

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧