FLEX 中的HTTPService对象返回值,如何获取?

HTTPService类文件:DownMarkerXML.ASpackagemodel{importmx.rpc.events.FaultEvent;importmx.r... HTTPService类文件:DownMarkerXML.AS
package model
{
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;

public class DownMarkerXML{
private var httpService:HTTPService;
public var Result_String:String = "返回变量";

public function DownMarkerXML(){
httpService = new HTTPService();
}

public function sendReq(strURL:String):void{
httpService.url = strURL;
httpService.useProxy = false;
httpService.resultFormat = "xml";
httpService.method = "GET";
httpService.addEventListener(ResultEvent.RESULT, loadAddr); //请求成功,返回了想要的数据
httpService.addEventListener(FaultEvent.FAULT, myFaultErrorEvent); //请求失败,抛出异常
httpService.send();
}

public function loadAddr(event:ResultEvent):void{
if(httpService.lastResult != null){
var markerXML:XML = XML(httpService.lastResult);
trace("fanhuizhi"+markerXML.name.toString());
this.Result_String=markerXML.name.toString();
}
}
public function return_Data():String{
return this.Result_String;
}

public function myFaultErrorEvent(myFaultEvent:FaultEvent):void{ //异常处理函数
trace(myFaultEvent.message);
}
}
}

我在调用时
var fetcher:DownMarkerXML = new DownMarkerXML();
fetcher.sendReq("http://localhost:8080/test/index.jsp?txtMessage=true");
var Return_Msg:String;
Return_Msg=fetcher.return_Data();
trace("Return_Msg); //为什么这里的"Return_Msg"还不是返回后的新数据,还是初始化的数据?要怎样才能获取到服务器返回的数据?
展开
 我来答
Sweet丶奈何
高粉答主

2015-11-05 · 每个回答都超有意思的
知道大有可为答主
回答量:2.8万
采纳率:82%
帮助的人:4752万
展开全部
  1. 采用BlazeDS的Remote Object好处是显而易见的,只需要维护后端server部分的java对象结构即可,flex前段采用<mx:RemoteObject>的destination索引即可(简单的配置即可)。但是坏处就是对于其他接入方式支持不了,同时对于前台显示方式也有所限制了。 

  2. 采用http service的方式,可能会浪费一部分xml解析的时间,损失一部分效率(当前flex前端也不得不额外多出很多object的构造)。但是通用性将得到保证。 

  3. 调用fetcher.return_Data()时,可能数据根本没有读取完成,即没有调用loadAddr方法。所以取得的Return_Msg就是初始化的数据。

  4. 应用采用监听事件的方式来取得Return_Msg。

  5. 例如在loadAddr抛出个事件,调用的时候监控一下这个事件,再去取得Return_Msg。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
czr9911
2010-09-11
知道答主
回答量:5
采纳率:0%
帮助的人:3.4万
展开全部
因为httpService采用的是异步处理操作
在你调用fetcher.return_Data()时,可能数据根本没有读取完成,即没有调用loadAddr方法。所以取得的Return_Msg就是初始化的数据。

应用采用监听事件的方式来取得Return_Msg。
例如在loadAddr抛出个事件,调用的时候监控一下这个事件,再去取得Return_Msg
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuwq79
2010-09-10 · 超过13用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:38万
展开全部
北京flexedu培训中心 温馨提醒您:
需要在url后加上时间,
http://flexedu.cn
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式