关于FLEX中的XML转换为ArrayCollection的应用计算机二级考试
文章作者 100test 发表时间 2009:06:15 09:48:57
来源 100Test.Com百考试题网
编辑特别推荐:
全国计算机等级考试(等考)指定教材
全国计算机等级考试学习视频
全国计算机等级考试网上辅导招生
全国计算机等级考试时间及科目预告
百考试题教育全国计算机等级考试在线测试平台
全国计算机等级考试资料下载
全国计算机等级考试论坛
计算机等级考试四级应用题解析汇总
2009年下半年全国计算机二级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机二级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库。
(FLEX生成饼图)关于FLEX中的XML转换为ArrayCollection的应用.
说说应用.数据库的使用空间的饼图.当然可以有更多的数据对比.这个根据需求:
题记:学习这个FLEX真是逼不得已,由于最近用这个东西做项目,说实话,好多东西都是我从网上copy过来的,说起来十分汗颜.
自己做的那点东西,完全不足挂齿.好了,还是言归正传吧,把自己的一点点收获还是奉献给大家:这里要谈的是FLEX当中后台获取的XML(主要是自己从数据库当中获取的数据,自己封装的XML)转换成ArrayCollection并且生成饼图.
首先是从后台得到数据,这里只有一点重要的,就是HTTPService的resultFormat,这里大家大可以换很多方式来试试.说起来真是屡试不爽,呵呵,就这么点东西,自己还以为发现了新大陆,原来这个早已经被开垦过的东西已经所剩无几了,哈哈.
还是来谈程序吧,
数据来源,后台,来看看Java代码.
view plaincopy to clipboardprint?
@Override
public void queryDatabasestat(HttpServletRequest request,
HttpServletResponse response) {
StringBuffer xml = new StringBuffer().
try {
Map<.String, Object>. map = (Map<.String, Object>.) ((databasestatDao
.query()).get(0)).
/*
//xml.append("[").
xml.append("{").append("name:\"空闲空间\", value:").append(
String.valueOf(map.get("FREESPACE"))).append("},").
xml.append("{").append("name:\"使用空间\", value:").append(
String.valueOf(map.get("USEDSPACE"))).append("}").
//xml.append("]").
*/
xml.append("<.projects>.").
xml.append("<.project").append(" name=\"可用空间\" value=\"").append(
String.valueOf(map.get("FREESPACE"))).append("\"").append("/>.").
xml.append("<.project").append(" name=\"已用空间\" value=\"").append(
String.valueOf(map.get("USEDSPACE"))).append("\"").append("/>.").
xml.append("<./projects>.").
//System.out.println(xml).
} catch (Exception e) {
e.printStackTrace().
xml.append(ToyXML.writeAlert(false, "获取菜单树失败:\n" e.getMessage())).
} finally {
writeXML(response, xml).
//System.out.println("xml---------->.").
//System.out.println(xml).
}
}
@Override
public void queryDatabasestat(HttpServletRequest request,
HttpServletResponse response) {
StringBuffer xml = new StringBuffer().
try {
Map<.String, Object>. map = (Map<.String, Object>.) ((databasestatDao
.query()).get(0)).
/*
//xml.append("[").
xml.append("{").append("name:\"空闲空间\", value:").append(
String.valueOf(map.get("FREESPACE"))).append("},").
xml.append("{").append("name:\"使用空间\", value:").append(
String.valueOf(map.get("USEDSPACE"))).append("}").
//xml.append("]").
*/
xml.append("<.projects>.").
xml.append("<.project").append(" name=\"可用空间\" value=\"").append(
String.valueOf(map.get("FREESPACE"))).append("\"").append("/>.").
xml.append("<.project").append(" name=\"已用空间\" value=\"").append(
String.valueOf(map.get("USEDSPACE"))).append("\"").append("/>.").
xml.append("<./projects>.").
//System.out.println(xml).
} catch (Exception e) {
e.printStackTrace().
xml.append(ToyXML.writeAlert(false, "获取菜单树失败:\n" e.getMessage())).
} finally {
writeXML(response, xml).
//System.out.println("xml---------->.").
//System.out.println(xml).
}
}
这里返回的就是一个XML格式的数据流.然后就是FLEX的页面获取.
见程序:
view plaincopy to clipboardprint?
<.?xml version="1.0" encoding="utf-8"?>.
<.mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationCompleteEffect="seqIn"
width="100%" height="100%" verticalScrollPolicy="off"
implements="modules.control.IModuleController"
creationComplete="init().">.
<.mx:HTTPService id="request4xml" resultFormat="e4x"
url="{actionURL}" method="post" showBusyCursor="true"
result="response4xml(event)."/>.
<.mx:Style source="resources/css/project.css" />.
<.!-- 全局 -->.
<.mx:Script source="../../../resources/ases/main.as" />.
<.!-- 工具 -->.
<.mx:Script source="../../../resources/ases/toy.as" />.
<.!-- 模块控制器 -->.
<.mx:Script source="../../control/ModuleController.as" />.
<.!-- 业务实现 -->.
<.mx:Script source="business/bs4xml.as" />.
<.mx:Script>.
<.!--[CDATA[
import mx.utils.ObjectProxy.
import mx.utils.ObjectUtil.
import mx.collections.ArrayCollection.
import mx.rpc.events.ResultEvent.
import mx.controls.Alert.
import mx.charts.series.items.PieSeriesItem.
import mx.charts.events.ChartItemEvent.
[Bindable]
private var actionURL:String = address databasestat.do .
private var xmlObj:XML.
private var arr:ArrayCollection.
private function pieChart_itemClick(evt:ChartItemEvent):void {
var psi:PieSeriesItem = evt.hitData.chartItem as PieSeriesItem.
Expense.text = "项目: " psi.item.@name.
Amount.text = "使用量: " psi.item.@value (M) .
percent.text = "使用率: " psi.percentValue.toFixed(1) "%"
//percent.text = "水果比例: " psi.percentValue.toFixed(1) "%"
}