如何从Flash中使用nusoap webservice

时间:2010-07-20 09:24:49

标签: flash actionscript-3 web-services

我正在尝试从AS3 Flash应用调用nuSoap编写的web服务;我已经读过,从AS3开始,已经在Flash中删除了webservice支持(真的不明白为什么......);我已尝试过派对解决方案(be.wellconsidered,carlo alducente)但他们不能使用nusoap生成的wsdl。 我真的很担心,我必须使用Flash而不是Flex,任何人都可以帮助我吗?

提前致谢 角

1 个答案:

答案 0 :(得分:3)

它不是轻量级的(它为你的swf增加了130 Kb),但你可以在一个Actionscript项目中使用Flex的Webservice api,除了手动添加必要的swc之外不需要任何黑魔法。

我自己做了这件事并没有遇到任何问题。我添加了flex.swc,framework.swc,rpc.swc和utilities.swc(以及locale文件夹中的所有swc)。我没有说太多,真的,只是添加了我在SDK中找到的所有swc,直到编译完成。由于编译器只会添加引用的类,因此它不应该有太大的区别,而且快速而简单。

我正在粘贴一些代码,也许它有帮助(我发现大多数示例使用的是mxlm):

    private function setupWebService():void {
        _ws = new WebService();
        _ws.addEventListener(LoadEvent.LOAD,handleWsdlLoad);

        _ws.getFeeds.addEventListener(InvokeEvent.INVOKE,handleGetFeedsInvoke);         
        _ws.getFeeds.addEventListener(ResultEvent.RESULT,handleGetFeedsResult);
        _ws.getFeeds.addEventListener(FaultEvent.FAULT,handleGetFeedsFault);
        _ws.loadWSDL(_wsdlUrl);
    }   
    //  at some point, call this method; not sure if you have to wait until wsdl is loaded
    //  I think it's not necessary; if I recall correctly, all calls are enqueued
    private function testGetFeeds():void {
        _ws.getFeeds("some_param");
    }

希望它有所帮助。

PS。这是我在代码中引用的WebService类:

import mx.rpc.soap.WebService;  
相关问题