Flex3使用Httpservice与服务器进行异步通讯

时间:2008年09月05日 23:37  标签: Flex3 as3 Httpservice 原创心得

最近在学习Flex3。当然,学习一门东西,最快上手的方法,就是拿来做项目。这样当然就是做网站的应用咯,做一个用户后台的Flex版。卡卡。感觉比前段时间研究的Ext好,学习成本好象低很多。

由于原来的项目是使用Ajax实现的,因此做一个Flex版的话,基本上服务器端的接口是不需要修改的,因此相互间的通讯数据是JSON格式。

而一般Flex的入门教程都是使用Httpservice控件的,而使用Remote Object的则比较少。所以暂时就先拿Httpservice练练手吧。

而常见的Httpservice的代码都是这样的:

<mx:HTTPService id="webConnection" resultFormat="text" result="handler(event)">

result属性代表http请求完成后回调的as函数。

但对于我这样的频繁与服务器进行通讯的应用。当然不可能使用这种硬编码的方式。要不页面上就一堆Httpservice控件了,这样不单编码麻烦,而且管理起来也相当麻烦。

后来查找手册,发现有addEventListener和removeEventListener方法可以配对使用。但一个非常麻烦的问题却是removeEventListener方法必须明确提供被删除侦听器的名称,由此就带来一个请求历史维护的问题。想起这个就头大。

只好再找方法,看如何能灵活的绑定侦听器,但又不需考虑删除的方法。

历经N小时的查找之后,终于在一篇旧文章的新评论里,找到解决方法,就是使用Responder控件。最终代码如下:

 

httpservice.url  = "http://www.abc.net/"; 

httpservice.request  = {action: "list"};


var call:Object = httpservice.send();

call.addResponder(new mx.rpc.Responder(handler, null));

 

 

相关资料:

ActionScript处理异步事件(一):中文 英文

ActionScript处理异步事件(二):中文 英文

ActionScript处理异步事件(三):中文 英文

当然,解决方法是在英文的评论里找到的啦,哈哈。

相关文章:
1条评论(Comments) 订阅该Blog下的评论RSS
随风  [2008年10月21日 18:28]
具体怎么写 来的
发表评论
正在加载...
搜索更多
文章导读
最新评论
我的豆瓣秀
RSS订阅
抓虾
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点