Flex中如何在PieChart的数据发生变化时弹出显示的例子
By Minidxer | November 19, 2008
接下来的例子演示了Flex中如何在PieChart的数据发生变化时弹出显示。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <?xml version="1.0"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="horizontal"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.events.ListEvent;
- import mx.events.SliderEvent;
- private function slider_change(evt:SliderEvent):void {
- var arr:Array = [];
- if (evt.value >= 0) {
- arr[evt.value] = 0.2;
- }
- series.perWedgeExplodeRadius = arr;
- }
- private function list_itemRollOver(evt:ListEvent):void {
- var arr:Array = [];
- arr[evt.rowIndex] = 0.2;
- series.perWedgeExplodeRadius = arr;
- /* Update the slider. */
- slider.value = evt.rowIndex;
- }
- private function comboBox_change(evt:ListEvent):void {
- var field:String = evt.currentTarget.selectedItem.label;
- series.field = field;
- }
- private function series_labelFunc(item:Object, field:String, index:Number, percentValue:Number):String {
- return item.name + ":\n" + field + ":" + Number(item[field]).toFixed(3);
- }
- ]]>
- </mx:Script>
- <mx:ArrayCollection id="arrColl">
- <mx:source>
- <mx:Array>
- <mx:Object name="R Winn" obp=".353" slg=".445" avg=".300" />
- <mx:Object name="P Feliz" obp=".290" slg=".418" avg=".253" />
- <mx:Object name="O Vizquel" obp=".305" slg=".316" avg=".246" />
- <mx:Object name="B Molina" obp=".298" slg=".433" avg=".276" />
- <mx:Object name="R Durham" obp=".295" slg=".343" avg=".218" />
- </mx:Array>
- </mx:source>
- </mx:ArrayCollection>
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain">
- <mx:FormItem label="explode wedge:">
- <mx:HSlider id="slider"
- minimum="-1"
- maximum="{arrColl.length - 1}"
- snapInterval="1"
- liveDragging="true"
- dataTipPrecision="0"
- change="slider_change(event);" />
- </mx:FormItem>
- <mx:FormItem label="field">
- <mx:ComboBox id="comboBox"
- change="comboBox_change(event);">
- <mx:dataProvider>
- <mx:Array>
- <mx:Object label="avg" />
- <mx:Object label="obp" />
- <mx:Object label="slg" />
- </mx:Array>
- </mx:dataProvider>
- </mx:ComboBox>
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- <mx:List id="list"
- dataProvider="{arrColl}"
- labelField="name"
- width="100"
- height="100%"
- itemRollOver="list_itemRollOver(event);" />
- <mx:PieChart id="chart"
- height="100%"
- width="100%"
- showDataTips="true"
- dataProvider="{arrColl}">
- <mx:series>
- <mx:PieSeries id="series"
- nameField="name"
- field="avg"
- labelPosition="callout"
- labelFunction="series_labelFunc"
- filters="[]" />
- </mx:series>
- </mx:PieChart>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Chart |
No Comments » |
Tags: field, labelField, labelPosition, perWedgeExplodeRadius, PieChart, PieSeries