0

我需要在 Web 服务中调用一个方法并将其参数从动作脚本 3.0 传递给它,谁能帮我?我在整个互联网上搜索并找到了使用 flex 的解决方案,但我没有使用 flex 我正在使用 action script 3.0

4

3 回答 3

1

我使用这样的东西:

var request:URLRequest = new URLRequest();
request.url = 'http://example.org';

// If you're POSTing data:
request.method = URLRequestMethod.POST;
request.data = new URLVariables({ /* Your object */ });

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES; // If you're using POST
try {
    loader.load(request);
} catch(error:Error) {
    // Handle error
}

trace(loader.data); // Result

文档:

于 2009-04-08T15:29:05.433 回答
1

这是我在我的一个 Flex 项目中使用的代码...

import mx.rpc.soap.WebService;

public var service:WebService = new WebService();

override protected function initializationComplete():void
{
    service.wsdl = "http://localhost:1133/YourService.asmx?wsdl"

    // GetPayload is the method name you're calling on your web service
    service.GetPayload.resultFormat = "e4x";
    service.GetPayload.addEventListener("result", yourResultHandler);
    service.GetPayload.addEventListener("fault", yourFaultHandler);

    // Method to call once the WSDL is loaded
    service.addventListener(LoadEvent.LOAD, loadHandler);

    service.loadWSDL();
}

然后这是加载 WSDL 后发生的情况

protected function loadHandler(event:LoadEvent):void
{
    // send() takes the service parameters
    service.GetPayload.send("Product");
}

您只需要编写两个方法来处理您的服务返回的 XML(数据以 e4x 格式返回:

protected function yourResultHandler(event:ResultEvent):void
{
    _messageXml = XML(event.result);
}

proteted function yourFaultHandler(event:FaultEvent):void
{
    Alert.show(event.toString());
}
于 2009-04-08T15:44:22.387 回答
0

您可以通过一种棘手的方法使用 Web 服务,首先您通过在 flex 环境中编译来制作 swf,其中包括 webservice 的导入语句,如 import mx.rpc.webservices。现在编译它你会得到一个swf。现在您转到 as3.0 并在舞台上制作一个空的影片剪辑,并在链接属性中将其导入以进行运行时共享并将 a.swf(ex)on 文本框放在共享中。现在您可以在动作脚本文件中导入语句导入mx.rpc.webservices.and 使用与 flex 相同的方法。你肯定可以访问网络服务....

于 2010-01-04T11:04:57.077 回答