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