求救:LineChart不出图
<?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 com.adobe.serializers.utility.TypeUtility; import mx.charts.CategoryAxis; import mx.charts.Legend; import mx.charts.LineChart; import mx.charts.LinearAxis; import mx.charts.chartClasses.AxisLabelSet; import mx.charts.chartClasses.IAxis; import mx.charts.series.LineSeries; import mx.collections.ArrayCollection; import mx.collections.IList; import mx.controls.Alert; import mx.events.FlexEvent; import mx.formatters.DateFormatter; import mx.rpc.events.ResultEvent; import spark.components.List; [Bindable] private var maxDate:Date; [Bindable] private var minDate:Date; private var timer:Timer; private var dateFormat:DateFormatter = new DateFormatter(); private var dateVar:Date; //测试数据 private var expenses:ArrayCollection = new ArrayCollection([ {id:"cpu1", user: 50, sys: 38}, {id:"cpu2", user: 25, sys: 76}, {id:"cpu3",user: 68, sys: 29}, {id:"cpu4",user: 68, sys: 29} ]); private function init(event:Event):void { //_test(); dateFormat.formatString = "HH:NN:SS"; minDate = new Date(); var dx:Date = new Date(); dx.setMinutes(dx.getMinutes()+1, dx.getSeconds(), dx.getMilliseconds()); maxDate = dx; dateVar = new Date(); updateChart(); } private function _test(event:Event):void{ init(event); } //纵轴 key public static var arr:Array = new Array("user","sys"); [Bindable] public var resultList:IList= null; [Bindable] public var dataProS:Array= new Array(); public function updateChart():void{ var arrayCl:ArrayCollection = expenses; var dateV:String=mylabel(getDate()); var ALLLineSeries:Array=new Array(); var index:int = -1; var x:int = 0; var y:int = 20; cpuBC.removeAllElements(); for(var i:int= 0; i < arrayCl.length; i++){ arrayCl[i]['date']=dateV; index = searchProItem(arrayCl[i]['id']); if(index >=0){ if(dataProS[index].length>=3){ (dataProS[index] as ArrayCollection).removeItemAt(0); } (dataProS[index] as ArrayCollection).addItem((arrayCl[i])); }else{ var dataNew:ArrayCollection=new ArrayCollection(); dataNew.addItem(arrayCl[i]); dataProS.push(dataNew); } var chart:LineChart=new LineChart(); chart.id=arrayCl[i]["id"]; chart.x=x; chart.y=y; chart.width=(cpuBC.width)/arrayCl.length-50; chart.height=cpuBC.height*0.8; chart.dataProvider=dataProS[searchProItem(arrayCl[i]['id'])] ; var lineHAxis:CategoryAxis=new CategoryAxis(); lineHAxis.categoryField="date"; lineHAxis.dataProvider=dataProS[searchProItem(arrayCl[i]['id'])]; chart.horizontalAxis=lineHAxis; for (var j:int=0; j < arr.length; j++) { var _titleArr:String=arr[j].toString(); var lineSeries:LineSeries=new LineSeries(); lineSeries.xField="date"; lineSeries.yField=_titleArr; lineSeries.displayName=_titleArr; ALLLineSeries.push(lineSeries); } chart.series=ALLLineSeries; var chartLegend:Legend=new Legend(); chartLegend.dataProvider=chart; x+=chart.width+30; chartLegend.x=x-35; chart.showDataTips=true; chart.series=ALLLineSeries; cpuBC.addElement(chart); cpuBC.addElement(chartLegend); } } /** * 判断是哪个CPU的信息 **/ public function searchProItem(index:String):int{ for(var i:int = 0; i < dataProS.length; i++){ trace(dataProS[i][0]['id']+"--------"); if(dataProS[i] && dataProS[i][0]['id'] && dataProS[i][0]['id']==index ){ return i; } } return -1; } private function getDate():Date { var dm:Date = new Date(); // trace(dm+":"+dateVar); dm.setTime(dateVar.getTime()); dm.setSeconds(dm.getSeconds()+1, dm.getMilliseconds()); dateVar = dm; if (dateVar.getTime()>maxDate.getTime()) { maxDate = dateVar; var dx:Date = new Date(); dx.setMinutes(dx.getMinutes()-1, dx.getSeconds(), dx.getMilliseconds()); minDate = dx; } return dateVar; } private function mylabel(labelValue:Object):String { var str:String = dateFormat.format(labelValue); return str; } ]]> </fx:Script> <fx:Declarations > </fx:Declarations> <s:BorderContainer id="cpuBC" x="0" y="0" width="927" height="286"> </s:BorderContainer> <s:Button x="102" y="346" label="按钮" click="_test(event)"/></s:Application>