如题:见图

代码如下
<?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" creationComplete="init()">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<mx:SeriesSlide id="show" duration="1000" direction="right"/>
<!-- 填充颜色 -->
<s:SolidColor id="sc1" color="yellow" alpha=".8"/>
<!-- 边框颜色 -->
<s:SolidColorStroke id="s1" color="yellow" weight="2"/>
<s:RadioButtonGroup id="daytype" itemClick="kindChange(event)"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.ItemClickEvent;
private var urlloader:URLLoader;
private var numRanking:Number = 10; //排名多少
private var rankXFiled:String ="@value" ; //yfield显示值
[Bindable]private var colorArray:Array =[0x99cccc,0xccccff,0x66cc99,0xff9966,0x336699,0x003300,0xcccccc,0xcccc33,0xcc9933,0xcc99cc];
private var urlloaderUrl:String ="http://localhost:23584/CountChart/getProductSaleRanking.aspx?"+Math.random()*1000;
private function init():void{
getData( numRanking ); //获取数据
}
//获取数据
private function getData(pageSize:Number):void{
urlloader = new URLLoader();
var request:URLRequest = new URLRequest( urlloaderUrl );
request.method = URLRequestMethod.POST;
var variable:URLVariables = new URLVariables();
variable.pageSize = pageSize;
request.data = variable;
urlloader.addEventListener(Event.COMPLETE,onComplete);
urlloader.addEventListener(IOErrorEvent.IO_ERROR,ioError);
urlloader.load(request);
}
//获取数据失败
private function ioError(event:IOErrorEvent):void{
Alert.show(" get data failed");
}
//获取数据成功
private function onComplete(event:Event):void{
var xs:XMLList = new XMLList(); //查询数据
var _dp:ArrayCollection = new ArrayCollection();
xs = XML(event.target.data).node;
for each (var xl:XML in xs.row){
_dp.addItem(xl);
}
BindData(_dp); //绑定数据
}
//绑定数据
private function BindData(x:ArrayCollection):void{
rank.xField= rankXFiled;
rank.setStyle("labelPosition", "none");
rank.setStyle("labelAlign", "right");
rank.setStyle("labelRotation",90);
bar.dataProvider = x;
rank.dataProvider = x;
}
//按选择时期获得数据
private function kindChange(event:ItemClickEvent):void{
switch (event.currentTarget.selectedValue){
case "perThree":
numRanking = 3;
break;
case "perFive":
numRanking = 5;
break;
case "perTen":
numRanking = 10;
break;
}
getData( numRanking ); //重新获取数据
}
]]>
</fx:Script>
<s:Label id="txt" text="销售排行" x="100" fontSize="18" y="10" fontWeight="bold"/>
<mx:BarChart id="bar" height="300" width="300" y="50" selectionMode="single"
paddingLeft="5" paddingRight="5" barWidthRatio=".3"
showDataTips="true">
<mx:verticalAxis>
<mx:CategoryAxis id="vAxis" categoryField="@title" title="商品名称"/>
</mx:verticalAxis>
<mx:horizontalAxis>
<mx:LinearAxis title="销售量" id="hAxis" direction="inverted" interval="1"/>
</mx:horizontalAxis>
<mx:horizontalAxisRenderers>
<mx:AxisRenderer axis="{hAxis}" fontSize="12"/>
</mx:horizontalAxisRenderers>
<mx:verticalAxisRenderers>
<mx:AxisRenderer
axis="{vAxis}"
placement="right" fontSize="12"
highlightElements="true"
/>
</mx:verticalAxisRenderers>
<mx:series>
<mx:BarSeries id="rank" showDataEffect="{show}"
yField="@title"
displayName="商品名称"
stroke="{s1}"
><!--itemRenderer="model.CustomSeriesRenderer"-->
<mx:fills>
<fx:Array>
<!-- 填充颜色 -->
<s:SolidColor color="{colorArray[0]}" alpha=".6"/>
<s:SolidColor color="{colorArray[1]}" alpha=".6"/>
<s:SolidColor color="{colorArray[2]}" alpha=".6"/>
<s:SolidColor color="{colorArray[3]}" alpha=".6"/>
</fx:Array>
</mx:fills>
</mx:BarSeries>
</mx:series>
</mx:BarChart>
<s:RadioButton x="10" groupName="daytype" id="perThree" value="perThree" y="369" label="前三名"/>
<s:RadioButton x="87" groupName="daytype" id="perFive" value="perFive" y="369" label="前五名" selected="true"/>
<s:RadioButton x="176" groupName="daytype" id="perTen" value="perTen" y="369" label="前十名"/>
</s:Application>

- 大小: 5.3 KB
分享到:
相关推荐
本教程将深入讲解如何利用ArcGIS for Flex在地图上显示柱状图、饼状图和折线图,以便于用户更直观地理解地理数据。 首先,我们需要了解ArcGIS for Flex的基本概念。ArcGIS for Flex是一个基于Adobe Flex的开发库,...
在Flex4开发中,创建坐标轴曲线图是一种常见的需求,特别是在数据可视化和图表展示的应用中。Flex是一个基于ActionScript和MXML的开放源代码框架,主要用于构建富互联网应用程序(RIA)。它提供了强大的图形和组件库...
接下来,在MXML中定义了 `mx:BarChart` 组件,设置了其 `x` 和 `y` 坐标,指定了 `id` 为 `barchart1`,并设置 `dataProvider` 属性为前面定义的数组 `arr`。此外,还设置了 `showDataTips` 为 `true`,这意味着当...
在Flex中,可以使用MX或Spark组件库中的Chart组件来创建图表。MX Chart组件提供了一套完整的图表类型,包括线形图。在源码中,开发者可能已经定义了数据提供者、设置了X轴和Y轴的属性,并定制了图表的样式和交互行为...
在Flex中实现双轴组合图的设计思路和代码涉及到多个知识点,以下将详细介绍: 1. Flex基础:Flex是一种用于开发富互联网应用的开发环境,它包括一个编译器和一套语言规范。Flex使用MXML(基于XML的标记语言)和...
你可以使用现有的图表库,如Zebra或是Chart classes in the Flex SDK,或者从头开始编写自己的类。 3. **在Flash舞台上设计图表元素**:在Flash CS5的时间轴上,你可以设计图表的基本结构,比如X轴、Y轴、网格线、...