像其他FLEX组件一样,图表组件也实现了对一些常用的用户交互动作做出响应的事件封装,如鼠标单击双击图表的某一个区域等等,这些事件分别封装在图表类的下列属性中
事件属性
描述
itemClick
鼠标单击事件
itemDoubleClick
鼠标双击事件
itemMouseDown
鼠标按下事件
itemMouseMove
鼠标在监控区域移动事件
itemRollOut
鼠标移出监控区域事件
itemRollOver
鼠标从一个监控区域移动到新的监控区域
itemMouseUp
监控区域内释放鼠标
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="489" height="418">
<mx:Script><![CDATA[
import mx.controls.Alert;
import mx.charts.events.ChartItemEvent;
import mx.collections.ArrayCollection;
[Bindable]
public var planvalue:ArrayCollection = new ArrayCollection([
{time: "1", realvalue: 2000, planvalue: 1500,guessvalue:1000},
{time: "2", realvalue: 1000, planvalue: 200,guessvalue:1000},
{time: "3", realvalue: 1500, planvalue: 500,guessvalue:1000}
]);
private function initListener():void{
chart.addEventListener(ChartItemEvent.ITEM_CLICK,handler);
chart.addEventListener(ChartItemEvent.ITEM_DOUBLE_CLICK,handler);
chart.addEventListener(ChartItemEvent.ITEM_MOUSE_DOWN,handler);
chart.addEventListener(ChartItemEvent.ITEM_MOUSE_MOVE,handler);
chart.addEventListener(ChartItemEvent.ITEM_MOUSE_UP,handler);
chart.addEventListener(ChartItemEvent.ITEM_ROLL_OUT,handler);
chart.addEventListener(ChartItemEvent.ITEM_ROLL_OVER,handler);
}
private function handler(event:ChartItemEvent):void{
mx.controls.Alert.show('Event '+ event.type +'Was Dispatched!');
}
]]></mx:Script>
<mx:Model id="data" source="demoData.xml"/>
<mx:Panel>
<mx:ColumnChart id="chart" dataProvider="{data.element}" height="270" creationComplete="initListener()">
<mx:horizontalAxis>
<mx:CategoryAxis
categoryField="time"
title="planvalue"
/>
</mx:horizontalAxis>
<mx:verticalAxis>
<mx:LinearAxis
title="realvalue"
minimum="0"
maximum="2500"
/>
</mx:verticalAxis>
<mx:series>
<mx:ColumnSeries
xField="time"
yField="realvalue"
displayName="realvalue"
/>
</mx:series>
</mx:ColumnChart>
</mx:Panel>
</mx:Application>
组件初始化完毕后触发initListener方法,这个方法给图表组件注册各种事件监听器,并用handler作为各种事件的事件侦听函数。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mervyn_lee/archive/2008/10/07/3027070.aspx