首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

:LineChart不出图

2012-09-10 
求救:LineChart不出图JScript code?xml version1.0 encodingutf-8?s:Application xmlns:fxhttp

求救:LineChart不出图

JScript code
<?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> 


请教各位高手,到底是哪里不对呢。

[解决办法]
类的克隆可以在网上自己找例子。第二种方法的话,代码如下:

var tempobj:Object = new Object();
tempobj.id = arrayCl[i].id;
tempobj.date = arrayCl[i].date;
tempobj.user = arrayCl[i].user;
tempobj.sys = arrayCl[i].sys;
(dataProS[index] as ArrayCollection).addItem(tempobj);

会出来一种很奇怪的图像,不知道是不是楼主想要的结果。

热点排行