Flex做动态实时曲线图
现在有如下代码:
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" horizontalAlign="center" creationComplete="init();"> <mx:Style> .font12{font-family:宋体;fontSize:15} </mx:Style> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; import mx.controls.Alert; [Bindable] private var expenses:ArrayCollection = new ArrayCollection(); private function init():void{ setInterval(torequest,2000); } public function torequest():void{ realtimeservice.send(); realtimeservice.addEventListener(ResultEvent.RESULT,getResult); } private var tmpobj:Object; private function getResult(e:ResultEvent):void{ tmpobj = new Object(); tmpobj["Day"] =(String)(e.result.myxml.result.Day); tmpobj["alpha"] =(String)(e.result.myxml.result.alpha); tmpobj["beta"] =(String)(e.result.myxml.result.beta); tmpobj["gama"] =(String)(e.result.myxml.result.gama); if (expenses.length==20){ var i:int ; for ( i= 1 ; i<10; i++){ expenses.setItemAt(expenses.getItemAt(i),i-1); } expenses.setItemAt(tmpobj,expenses.length-1); }else{ expenses.addItem(tmpobj); } } ]]></mx:Script> <mx:HTTPService id="realtimeservice" url="http://localhost:8080/MyFlex/realtimeServlet" useProxy="false" method="POST"> </mx:HTTPService> <mx:ApplicationControlBar dock="true" cornerRadius="14" fillAlphas="[1.0, 1.0]" fillColors="[#8BBED9, #FDFAFA]" themeColor="#74B2D9" > <mx:Spacer width="100%" /> <mx:Legend dataProvider="{chart}"/> </mx:ApplicationControlBar> <mx:Panel title="曲线图" fontSize="15" width="100%" borderColor="#F7F2F2" themeColor="#F8FAFB" backgroundColor="#F9F5F5" borderStyle="inset"> <mx:LineChart dataProvider="{expenses}" showDataTips="true" width="100%" id="chart" fontFamily=" 宋体" fontSize="12"> <mx:horizontalAxis> <mx:CategoryAxis categoryField="Day" displayName="day" title="随机数" /> </mx:horizontalAxis> <mx:series> <mx:LineSeries yField="alpha" displayName="alpha 浓度" styleName="font12" /> <mx:LineSeries yField="beta" displayName="beta" /> <mx:LineSeries yField="gama" displayName="gama" /> </mx:series> </mx:LineChart> </mx:Panel> </mx:Application>
[解决办法]
<mx:LinearAxis baseAtZero="true" />
</mx:verticalAxis>
<mx:series>
<mx:LineSeries yField="valueTest" xField="date" displayName="TestData" dataProvider="{this.testDatas}"/>
</mx:series>
</mx:LineChart>
</mx:Panel>
</mx:Application>