作者:安淡言 | 来源:互联网 | 2023-05-19 17:06
Flex连接后台数据有四种:WebService、HTTPService、RemoteObject、Socket,其中Webservice和HTTPService数据传输格式都是XML,
Flex连接后台数据有四种:WebService、HTTPService、RemoteObject、Socket,其中Webservice和HTTPService数据传输格式都是XML,数据传输量较大,传输效率不高,但是也不失为一种可行的解决方案,后两种RemoteObject和Socket都传输的是二进制数据传输效率比较高,RemoteObject在企业级RIA应用中较为常用,而Socket可能更多的是用于游戏中,现在有很多的这种Socket服务器包括Red5,SmartFoxServer,ElectroServer,Flash Media Interactive Server等等,有开源的比如说Red5,也有付费的比如说ElectroServer,ElectroServer是一家做这方面的比较早的公司,他的创办人之一写了本《ActionScript 3大型网页游戏开发》其中用的服务器就是ElectroServer。
废话少说(代码如下,不懂看AS文档):
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.soap.LoadEvent;
import mx.rpc.soap.WebService;
import mx.controls.Alert;
private var str:String = "http://webservice.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl";
private var webService:WebService;
private function onClick():void
{
//创建并实例化WebService示例,不过之前要先导入WebService类
webService = new WebService();
webService.wsdl = str;
webService.loadWSDL(str);
//事件侦听我就不说了,文档上都有
webService.addEventListener(LoadEvent.LOAD, onLoad);
webService.addEventListener(ResultEvent.RESULT, onResult);
webService.addEventListener(FaultEvent.FAULT, onFault);
}
private function onLoad(e:LoadEvent):void
{
//进行相关的操作
webService.toTraditionalChinese(txt.text.toString());
}
private function onResult(e:ResultEvent):void
{
txt.text = e.result.toString();
}
private function onFault(e:FaultEvent):void
{
trace(e.message);
//给用警告,偷懒不愿debug的时候这么来
Alert.show("未能连接到WebService,请检查网络!","错误");
}
]]>
截图如下:
![](https://img1.php1.cn/3cd4a/24d65/61b/c89f7925697380f2.jpeg)