2010-07-20 53 views
1

我試圖從AS3 Flash應用程序調用寫在nuSoap中的webservice;我讀過,從AS3開始,web服務支持已經在Flash中刪除(真的不明白爲什麼...);我已經嘗試了一些派對解決方案(be.wellconsidered,carlo alducente),但他們不適用於nusoap產生的wsdl。 我真的很擔心,我必須使用Flash而不是Flex,任何人都可以幫助我嗎?如何從Flash中使用nusoap web服務

在此先感謝 c。

回答

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; 
+0

非常感謝! – Cris 2010-07-20 13:14:44

+0

當然,沒問題! – 2010-07-20 13:23:57