<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.charts.ChartItem;
import mx.charts.events.ChartEvent;
import mx.charts.events.ChartItemEvent;
import mx.charts.series.items.PieSeriesItem;
import mx.collections.ArrayCollection;
[Bindable]
private var medalsAC:ArrayCollection = new ArrayCollection( [
{ Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
{ Country: "China", Gold: 32, Silver:17, Bronze: 14 },
{ Country: "Russia", Gold: 27, Silver:27, Bronze: 38 } ]);
private function displayGold(data:Object, field:String, index:Number, percentValue:Number):String {
var str:String=new String(" " + percentValue);
var temp:String= str.substr(0,6);
return data.Country + ": " + '\n' + "Total Gold: " + data.Gold + '\n' + temp + "%";
}
public function showDetail(evt:ChartItemEvent):void
{
var psia:PieSeriesItem= PieSeriesItem(evt.hitData.chartItem);
/*设置选中的部分弹出显示*/
var arr:Array = [];
arr[evt.hitData.chartItem.index] = 0.2;
pieSeries.perWedgeExplodeRadius = arr;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Define custom colors for use as pie wedge fills. -->
<mx:SolidColor id="sc1" color="blue" alpha=".6"/>
<mx:SolidColor id="sc2" color="red" alpha=".6"/>
<mx:SolidColor id="sc3" color="0x663300" alpha=".10"/>
<mx:SolidColorStroke id="callouts" weight="2" color="0x00ff00" alpha=".8" caps="round" joints="miter" />
<mx:SolidColorStroke id="radial" weight="1" color="0xFFFFCC" alpha=".3"/>
<mx:SolidColorStroke id="pieborder" color="0x000000" weight="2" alpha=".5"/>
</fx:Declarations>
<mx:Panel title="圆的容器" height="100%" width="100%">
<mx:PieChart id="chart"
height="80%"
width="80%"
paddingRight="5"
paddingLeft="5"
showDataTips="true"
dataProvider="{medalsAC}"
itemClick="showDetail(event)"
>
<mx:series>
<mx:PieSeries
nameField="Country"
labelPosition="callout"
field="Gold"
labelFunction="displayGold"
calloutStroke="{callouts}"
radialStroke="{radial}"
stroke="{pieborder}"
id="pieSeries"
fills="{[sc1, sc2, sc3]}"
>
<mx:filters>
<fx:Array/>
</mx:filters>
</mx:PieSeries>
</mx:series>
</mx:PieChart>
<mx:Legend dataProvider="{chart}"/>
</mx:Panel>
</s:Application>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.charts.ChartItem;
import mx.charts.events.ChartEvent;
import mx.charts.events.ChartItemEvent;
import mx.charts.series.items.PieSeriesItem;
import mx.collections.ArrayCollection;
[Bindable]
private var medalsAC:ArrayCollection = new ArrayCollection( [
{ Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
{ Country: "China", Gold: 32, Silver:17, Bronze: 14 },
{ Country: "Russia", Gold: 27, Silver:27, Bronze: 38 } ]);
private function displayGold(data:Object, field:String, index:Number, percentValue:Number):String {
var str:String=new String(" " + percentValue);
var temp:String= str.substr(0,6);
return data.Country + ": " + '\n' + "Total Gold: " + data.Gold + '\n' + temp + "%";
}
public function showDetail(evt:ChartItemEvent):void
{
var psia:PieSeriesItem= PieSeriesItem(evt.hitData.chartItem);
/*设置选中的部分弹出显示*/
var arr:Array = [];
arr[evt.hitData.chartItem.index] = 0.2;
pieSeries.perWedgeExplodeRadius = arr;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Define custom colors for use as pie wedge fills. -->
<mx:SolidColor id="sc1" color="blue" alpha=".6"/>
<mx:SolidColor id="sc2" color="red" alpha=".6"/>
<mx:SolidColor id="sc3" color="0x663300" alpha=".10"/>
<mx:SolidColorStroke id="callouts" weight="2" color="0x00ff00" alpha=".8" caps="round" joints="miter" />
<mx:SolidColorStroke id="radial" weight="1" color="0xFFFFCC" alpha=".3"/>
<mx:SolidColorStroke id="pieborder" color="0x000000" weight="2" alpha=".5"/>
</fx:Declarations>
<mx:Panel title="圆的容器" height="100%" width="100%">
<mx:PieChart id="chart"
height="80%"
width="80%"
paddingRight="5"
paddingLeft="5"
showDataTips="true"
dataProvider="{medalsAC}"
itemClick="showDetail(event)"
>
<mx:series>
<mx:PieSeries
nameField="Country"
labelPosition="callout"
field="Gold"
labelFunction="displayGold"
calloutStroke="{callouts}"
radialStroke="{radial}"
stroke="{pieborder}"
id="pieSeries"
fills="{[sc1, sc2, sc3]}"
>
<mx:filters>
<fx:Array/>
</mx:filters>
</mx:PieSeries>
</mx:series>
</mx:PieChart>
<mx:Legend dataProvider="{chart}"/>
</mx:Panel>
</s:Application>