如何使用actionscript 2.0调用Web服务的方法

时间:2009-06-11 13:17:19

标签: flash web-services actionscript-2

我是flash的新手,我正在尝试使用AS2访问我使用Flash CS3创建的.net 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 个答案:

答案 0 :(得分: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变量。这是非常自我解释。 “SomeWebMethod”将是您要调用的服务中的Web方法的名称。如果它需要参数,它们会像这样添加:

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