2009-06-11 57 views
1

我是flash新手,我嘗試訪問使用AS2從Flash CS3創建的.net web方法。問題是我無法完成這項工作。如何使用actionscript 2.0調用web服務的方法

的代碼如下:

import mx.services.*; 

var myXml:XML = new XML(); 

var ws1:WebService = new WebService("http://localhost/manyworlds/mwframework/webservices/statisticscharts.asmx?wsdl"); 

ws1.onLoad = function(wsdl:Object){ 
     trace("Load"); 
      //Web method that retrieves a XML. 
     myXml = ws1.GetTopicsForStatistics(); 
     myXml.load(); 
}; 

感謝,

布賴恩

回答

1

下面是與代碼的例子,我已經在過去使用:

var myXml:XML = new XML(); 

public var service:WebService = new WebService(); 

service.wsdl = "http://pathToYourWsdl"; 
service.SomeWebMethod.resultFormat = "e4x"; 
service.SomeWebMethod.addEventListener("result", resultHandler); 
service.SomeWebMethod.addEventListener("fault", faultHandler); 
service.addEventListener(LoadEvent.LOAD, serviceLoadHandler); 

service.loadWSDL(); 

protected function serviceLoadHandler(event:LoadEvent):void 
{ 
    service.SomeWebMethod.send(); 
} 

protected function resultHandler(event:ResultEvent):void 
{ 
    myXML = XML(event.result); 
} 

protected function faultHandler(event:FaultEvent):void 
{ 
    // Handle a service fault here. 
} 

這代碼異步處理所有服務調用,然後將方法調用的結果分配給XML v良莠不齊。這是相當自我解釋。 「SomeWebMethod」將是您的服務中要調用的Web方法的名稱。如果需要參數,它們會加入像這樣:

service.SomeWebMethod.send(param1, param2, ...); 
+0

賈斯汀, 感謝您的快速答覆。 雖然我仍然無法完成這項工作。我不知道這是否只適用於flex或flash cs3,因爲當我添加肥皂web服務(導入mx.rpc.soap.WebService)所需的導入時,我得到一個錯誤,說這個類不能加載。 有什麼想法? 感謝您的幫助。 Brian – 2009-06-11 13:58:11