分享篇
天气:
 分类:心情日记 日记本:sara的点滴 作者:2005 2015-05-05 17:05 阅读数:

Flex的数据通讯方式

"   Flex本身并不支持直接与数据库交互,但可以通过间接的方式与数据交互,下面整理了几种方式:第一种,WebService通讯   WebService提供对远程服务器上基于SOAP的Web服务的访问,具有通用性,需要设置两大块,一个是VS工具创建Web项目以添加Web服务,一个是设置Flex项目以访问Web服务并加以运用访问到的数据。1、打开VS,在创建项目中选择Web的ProjectType,添加一个Web服务,项目名称及路径按自己的意愿填,创建好后默认的是个简单的例子----HelloWorld[WebMethod]publicstringHelloWorld(){return""HelloWorld"";}然后运行程序。2、在Flex项目中要访问这个Web服务。对于Flex中的WebService有两种,一种是MXML的,一种是AS,这个类分别在mx.rpc.soap.mxml包和mx.rpc.soap包中。MXML方式如:<fx:Declarations><s:WebServiceid=""WS""wsdl=""http://localhost:2403/Service1.asmx?wsdl""fault=""WS_faultHandler(event);""showBusyCursor=""true""><s:operationname=""HelloWorld""resultFormat=""object""result=""operation1_resultHandler(event);""/></s:WebService></fx:Declarations>然后在项目的主应用程序的creationComplete=""init();""中privatefunctioninit():void{WS.HelloWorld.send();}protectedfunctionWS_faultHandler(event:FaultEvent):void{Alert.show(event.fault.faultString,""Error"");}protectedfunctionoperation1_resultHandler(event:ResultEvent):void{varresult:String=event.resultasString;Alert.show(result);}如此result结果是Web服务的返回值“HelloWorld”。AS方式如下:在项目的主应用程序的creationComplete=""init();""中privatefunctioninit():void{varmyWS:mx.rpc.soap.WebService=newmx.rpc.soap.WebService();myWS.wsdl=""http://localhost:2403/Service1.asmx?wsdl"";myWS.loadWSDL();myWS.addEventListener(FaultEvent.FAULT,WS_faultHandler);myWS.addEventListener(ResultEvent.RESULT,operation1_resultHandler);myWS.HelloWorld();}如此达到上面一样的效果。   其中wsdl是WebServicesDescriptionLanguage的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明书,描述WebService的接口信息,比如介绍该Webservice有什么功能,以及每个函数调用时的参数等,wsdl便是这样的一个XML文档,如:<?xmlversion=""1.0""encoding=""UTF-8""?><wsdl:definitionsxmlns:wsdl=""http://schemas.xmlsoap.org/wsdl/""targetNamespace=""http://tempuri.org/""xmlns:http=""http://schemas.xmlsoap.org/wsdl/http/""xmlns:soap12=""http://schemas.xmlsoap.org/wsdl/soap12/""xmlns:s=""http://www.w3.org/2001/XMLSchema""xmlns:tns=""http://tempuri.org/""xmlns:mime=""http://schemas.xmlsoap.org/wsdl/mime/""xmlns:soapenc=""http://schemas.xmlsoap.org/soap/encoding/""xmlns:tm=""http://microsoft.com/wsdl/mime/textMatching/""xmlns:soap=""http://schemas.xmlsoap.org/wsdl/soap/""><wsdl:types><s:schematargetNamespace=""http://tempuri.org/""elementFormDefault=""qualified""><s:elementname=""HelloWorld""><s:complexType/></s:element><s:elementname=""HelloWorldResponse""><s:complexType><s:sequence><s:elementname=""HelloWorldResult""type=""s:string""maxOccurs=""1""minOccurs=""0""/></s:sequence></s:complexType></s:element></s:schema></wsdl:types><wsdl:messagename=""HelloWorldSoapIn""><wsdl:partname=""parameters""element=""tns:HelloWorld""/></wsdl:message><wsdl:messagename=""HelloWorldSoapOut""><wsdl:partname=""parameters""element=""tns:HelloWorldResponse""/></wsdl:message><wsdl:portTypename=""Service1Soap""><wsdl:operationname=""HelloWorld""><wsdl:inputmessage=""tns:HelloWorldSoapIn""/><wsdl:outputmessage=""tns:HelloWorldSoapOut""/></wsdl:operation></wsdl:portType><wsdl:bindingname=""Service1Soap""type=""tns:Service1Soap""><soap:bindingtransport=""http://schemas.xmlsoap.org/soap/http""/><wsdl:operationname=""HelloWorld""><soap:operationstyle=""document""soapAction=""http://tempuri.org/HelloWorld""/><wsdl:input><soap:bodyuse=""literal""/></wsdl:input><wsdl:output><soap:bodyuse=""literal""/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:bindingname=""Service1Soap12""type=""tns:Service1Soap""><soap12:bindingtransport=""http://schemas.xmlsoap.org/soap/http""/><wsdl:operationname=""HelloWorld""><soap12:operationstyle=""document""soapAction=""http://tempuri.org/HelloWorld""/><wsdl:input><soap12:bodyuse=""literal""/></wsdl:input><wsdl:output><soap12:bodyuse=""literal""/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:servicename=""Service1""><wsdl:portname=""Service1Soap""binding=""tns:Service1Soap""><soap:addresslocation=""http://localhost:2403/Service1.asmx""/></wsdl:port><wsdl:portname=""Service1Soap12""binding=""tns:Service1Soap12""><soap12:addresslocation=""http://localhost:2403/Service1.asmx""/></wsdl:port></wsdl:service></wsdl:definitions>   然后myWS.loadWSDL();指示WebService下载WSDL文档以便监听器获取此XML文档以便获取想要的数据,myWS.HelloWorld();指定你要的操作(其实可以说从刚获取的XML文档中取这个操作名XML元素)"
     
     
     此篇日记共有0个评论
         
     
     
首页 最新日记 佳作推荐 最新日记本 日记本排行 日记搜索 管理日记 服务中心