<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="initDP();" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ //声明一个unit类型的常数,用以表示饼状图的项目数 private const MAX_ITEMS:uint = 10; /* dp[] */ [Bindable] private var dp:Array; private function initDP():void { var i:uint; dp=new Array(); for (i = 0; i <= MAX_ITEMS; i++) { //将数据压入到dp中,数据格式{data:int,label:itemi} dp.push({data:getRandomUint(100), label:"item " + i}); } } private function getRandomUint(max:uint):uint { //round()取整,random()获得随机数 return Math.round(Math.random() * max); } ]]> </mx:Script> <!--<mx:Array id="dp" />--> <!--画按钮--> <mx:ApplicationControlBar dock="true"> <mx:Button label="Change Data" click="initDP();" /> </mx:ApplicationControlBar> <!--画饼图--> <mx:PieChart id="chart" height="100%" width="100%" dataProvider="{dp}"> <mx:series> <mx:PieSeries field="data"> <mx:showDataEffect> <!--渐变时间为1000毫秒--> <mx:SeriesInterpolate duration="1000" /> </mx:showDataEffect> </mx:PieSeries> </mx:series> </mx:PieChart> </mx:Application>
?
使用<mx:Array id="dp" />可以减少代码,例子如下:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="initDP();" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ //声明一个unit类型的常数,用以表示饼状图的项目数 private const MAX_ITEMS:uint = 10; private function initDP():void { var i:uint; dp=[]; for (i = 0; i <= MAX_ITEMS; i++) { //将数据压入到dp中,数据格式{data:int,label:itemi} dp.push({data:getRandomUint(100), label:"item " + i}); } } private function getRandomUint(max:uint):uint { //round()取整,random()获得随机数 return Math.round(Math.random() * max); } ]]> </mx:Script> <mx:Array id="dp" /> <!--画按钮--> <mx:ApplicationControlBar dock="true"> <mx:Button label="Change Data" click="initDP();" /> </mx:ApplicationControlBar> <!--画饼图--> <mx:PieChart id="chart" height="100%" width="100%" dataProvider="{dp}"> <mx:series> <mx:PieSeries field="data"> <mx:showDataEffect> <!--渐变时间为1000毫秒--> <mx:SeriesInterpolate duration="1000" /> </mx:showDataEffect> </mx:PieSeries> </mx:series> </mx:PieChart> </mx:Application>
?
?