首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

flex怎么根据xml生成折线图,求教

2012-01-14 
flex如何根据xml生成折线图,求教这是我的xml文件:nodevalue3,564,940.4/valuetime11/time/node

flex如何根据xml生成折线图,求教
这是我的xml文件:
<node>
  <value>3,564,940.4</value>
  <time>11</time>
</node>
<node>
  <value>3,543,119.46</value>
  <time>10</time>
</node>

在as中:evt.result.node得到xml,如何生成一个折线图,time是横柱,value是竖柱。
无论是使用as,还是使用组件都可以。但最好能够运行。
谢谢!


[解决办法]
找个例子,网上多的是。根据例子来该。

[解决办法]
flex 动态生成柱状图,折线图.看看吧,也许对你有用
整个文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:esri="http://www.esri.com/2008/ags"
xmlns:viewer="com.esri.viewer.*"
xmlns:components="com.esri.viewer.components.*"
widgetConfigLoaded="init()">
 <fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace esri "http://www.esri.com/2008/ags";
@namespace viewer "com.esri.viewer.*";
@namespace components "com.esri.viewer.components.*";
.ChineseFont
{
fontFamily:"Verdana","宋体";
fontWeight:normal;
fontSize:12;

 </fx:Style>
 <fx:Script>
<![CDATA[
import com.esri.viewer.AppEvent;
import com.esri.viewer.ViewerContainer;

import mx.charts.CategoryAxis;
import mx.charts.series.ColumnSeries;
import mx.charts.series.LineSeries;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.soap.mxml.WebService;
import mx.utils.StringUtil;
[Bindable]
private var webService:WebService=null;
[Bindable]
private var myxmllist:XMLList=null;
private var col:Array=new Array();
private var lin:Array=new Array();
private var str:String="jbxx_art";
private const ICON_URL:String="assets/images/";

/**
* 条件的字符串
* */
private var sql:String="";
private var firstinit:Boolean=false;

private function init():void
{
wt.addTitlebarButton(ICON_URL + "i_save.png", "导出图片", export);
if (configXML)
{
FuncMain();

}
firstinit=true;
}

private function FuncMain():void
{
ViewerContainer.getInstance().addEventListener("SetData", function(evt:AppEvent):void
{
str=evt.data.type;
sql=evt.data.str;
});
ViewerContainer.getInstance().dispatchEvent(new Event("LoadedOver"));
if (webService == null)
{
webService=new WebService();
webService.useProxy=false;
webService.wsdl=this.configData.services.wbservices[configXML.wbsid];
webService.loadWSDL();
}
webService.Tjt_method.addEventListener(ResultEvent.RESULT, result_Tjt_method);
webService.Tjt_method.addEventListener(FaultEvent.FAULT, fault);
webService.Tjt_method(str, sql);
}

public override function setState(value:String):void
{
super.setState(value);
if (value == 'open' && firstinit)
{
if (configXML != null)
{
FuncMain();
}
}
}


private function panell():void


{
switch (str)
{
case "jbxx_art":
p1.title="热井基本信息(按所属热田)";
p2.title=p1.title;
break;
case "jbxx_aqx":
p1.title="热井基本信息(按所属区县)";
p2.title=p1.title;
break;
case "kcsf_art":
p1.title="开采收费(按所属热田)";
p2.title=p1.title;
break;
case "kcsf_aqx":
p1.title="开采收费(按所属区县)";
p2.title=p1.title;
break;
case "kcbh":
p1.title="开采变化";
p2.title=p1.title;
break;

}
}

private function result_Tjt_method(evt:ResultEvent):void
{
panell();
myxmllist=null;
myxmllist=new XMLList(evt.result);
lin=new Array();
col=new Array();
for each (var xml:XML in myxmllist)
{
var xField:String=xml.elements("*")[0].name().toString();
for (var i:int=1; i < xml.child("*").length(); i++)
{
var yField:String=xml.elements("*")[i].name().toString();
var cs:ColumnSeries=new ColumnSeries();
cs.xField=xField;
cs.yField=yField;
cs.displayName=yField;
col.push(cs);

var ls:LineSeries=new LineSeries();
ls.yField=yField;
ls.displayName=yField;
lin.push(ls);

}

//horizontalAxis的创建
var cga_col:CategoryAxis=new CategoryAxis();
cga_col.categoryField=xField;

var cga_lin:CategoryAxis=new CategoryAxis();
cga_lin.categoryField=xField;

column.horizontalAxis=cga_col;
column.series=col;


line.horizontalAxis=cga_lin;
line.series=lin;
//线形图的类型
for each (var li:LineSeries in line.series)
{
li.setStyle("form", "curve");
}
return;
}


}

private function fault(evt:FaultEvent):void
{
Alert.show("监听器,监听失败!");
}

//统计图导出图片方法
private function export():void
{
var tabb:DisplayObject=null;
if (tab.selectedIndex == 0)
{
tabb=tab1
}
else if (tab.selectedIndex == 1)
{
tabb=tab2
}
var d:DisplayObject=DisplayObject(tabb);
ChartExport.Instance.exportChart(d);
}
]]>

 

 </fx:Script>
 <viewer:WidgetTemplate id="wt"
width="750"
height="500">

 

<mx:TabNavigator width="100%"
id="tab"
height="100%"
creationPolicy="all">
<mx:VBox id="tab1"
label="柱状图">
<s:Panel id="p1"
width="100%"
height="100%"
borderAlpha="0.15">
<s:layout>
<s:HorizontalLayout horizontalAlign="center"/>
</s:layout>

<mx:ColumnChart id="column"
height="100%"
width="100%"
fontSize="12"
color="0x323232"
dataTipRenderer="com.esri.viewer.skins.ChartDataTipSkin"
showDataTips="true"
dataProvider="{myxmllist}">

</mx:ColumnChart>

<mx:Legend dataProvider="{column}"
fontSize="12"
height="100%"
legendItemClass="widgets_dr.TJT.BigFontLegendItem"
color="0x323232"/>
</s:Panel>
</mx:VBox>
<mx:VBox id="tab2"
label="线形图">


<s:Panel id="p2"
width="100%"
height="100%"
borderAlpha="0.15">

<s:layout>
<s:HorizontalLayout horizontalAlign="center"/>
</s:layout>
<mx:LineChart id="line"
color="0x323232"
height="100%"
width="100%"
fontSize="12"
dataTipRenderer="com.esri.viewer.skins.ChartDataTipSkin"
showDataTips="true"
dataProvider="{myxmllist}">


</mx:LineChart>

<mx:Legend dataProvider="{line}"
fontSize="12"
height="100%"
legendItemClass="widgets_dr.TJT.BigFontLegendItem"
color="0x323232"/>
</s:Panel>
</mx:VBox>

</mx:TabNavigator>


 </viewer:WidgetTemplate>
</viewer:BaseWidget>

 

红色字体是,核心代码部分。

另外:注意有时候,可能,字体,或说明有一些问题,可以参考这个哦!

还有一个用到的类:

package widgets_dr.TJT
{
 import mx.charts.LegendItem;
 public class BigFontLegendItem extends LegendItem
 {
public function BigFontLegendItem()
{
super();
this.styleName = "ChineseFont";
}
  
 }
}

热点排行