Flex Chart有些总结
发布时间:2020-12-15 03:43:41 所属栏目:百科 来源:网络整理
导读:AreaChart 图表的效果如下图: 为了达到如下效果: 需要对verticalAxisRenderers纵轴进行渲染,AreaSeries的itemRenderer进行数据项加载. 代码如下: 主程序代码: ?xml version="1.0" encoding="utf-8"?s:Application ... fx:Script ![CDATA[ import mx.coll
AreaChart 图表的效果如下图: 为了达到如下效果: 需要对verticalAxisRenderers纵轴进行渲染,AreaSeries的itemRenderer进行数据项加载. 代码如下: 主程序代码: <?xml version="1.0" encoding="utf-8"?> <s:Application ... > <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; [Bindable] private var bookSales:ArrayCollection= new ArrayCollection( [{bookType:"Fiction",Sales:103},{bookType:"Nonfiction",Sales:69},{bookType:"Technology",Sales:78},{bookType:"Self-Help",Sales:124}] ); ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <!-- 线条颜色,以及填充色 --> <s:SolidColorStroke id="aAxisStroke" weight="1" color="#BBCCDD" /> <s:SolidColorStroke id="aTickStroke" weight="1" color="#BBCCDD" /> <s:SolidColor id="areaSC" color="#71747C" alpha="0.8" /> <s:SolidColorStroke id="areaStroke" color="#FFFFFF" alpha="0.8" weight="1" /> </fx:Declarations> <s:Group width="40%" height="40%" > <s:Rect left="0" right="0" top="0" bottom="0"> <s:fill> <s:SolidColor color="#61656E" /> </s:fill> </s:Rect> <mx:AreaChart id="areaChart" width="100%" height="100%" dataProvider="{bookSales}"> <!-- 横轴 --> <mx:horizontalAxis> <mx:CategoryAxis categoryField="bookType" /> </mx:horizontalAxis> <!-- 纵轴 --> <mx:verticalAxis> <mx:LinearAxis id="vLinearAxis" minimum="50" maximum="150" /> </mx:verticalAxis> <!-- 对纵轴进行渲染,例如刻度颜色与宽度,纵轴的颜色与宽度 --> <mx:verticalAxisRenderers> <mx:AxisRenderer axis="{vLinearAxis}" tickStroke="{aTickStroke}" axisStroke="{aAxisStroke}" tickLength="3" tickPlacement="cross"/> </mx:verticalAxisRenderers> <mx:series> <!-- 定义图表数据的 Series 对象数组,xField,yField --> <mx:AreaSeries xField="bookType" yField="Sales" form="segment" areaFill="{areaSC}" areaStroke="{areaStroke}" itemRenderer="AsPackages.AreaRenderer"/> <!-- itemRenderer 对每项数据加载的定义 --> </mx:series> </mx:AreaChart> </s:Group> </s:Application> ? AreaRenderer.as package AsPackages { import flash.display.Graphics; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Rectangle; import mx.charts.Legend; import mx.charts.chartClasses.LegendData; import mx.charts.series.LineSeries; import mx.charts.series.items.AreaSeriesItem; import mx.charts.series.items.LineSeriesItem; import mx.controls.Label; import mx.core.IDataRenderer; import mx.core.UIComponent; import mx.graphics.SolidColor; import mx.graphics.SolidColorStroke; import spark.primitives.Graphic; public class AreaRenderer extends UIComponent implements IDataRenderer { private var _label:Label; private var _yField:String; private var _chartItem:AreaSeriesItem; public function AreaRenderer():void { super(); _label=new Label(); addChild(_label); } public function get data():Object { return _chartItem; } public function set data(value:Object):void{ if(_chartItem==value) return; if(value is AreaSeriesItem) { _chartItem=AreaSeriesItem(value); _label.text=_chartItem.yValue.toString(); _label.setStyle("color",0xFFFFFF); _label.setStyle("fontSize",12); } } override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth,unscaledHeight); var rc:Rectangle=new Rectangle(0,width,height); var point:Graphics=graphics; point.clear(); point.moveTo(rc.left,rc.top); point.beginFill(0xFFFFFF); point.drawCircle(5,5,4); point.endFill(); _label.setActualSize(_label.getExplicitOrMeasuredWidth(),_label.getExplicitOrMeasuredHeight()); _label.move(unscaledWidth-10,unscaledHeight-25); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |