2010-07-10 132 views
0

我有一個函數fooA(valueA1,valueA2),其調用Web方法myWSA()。在reeiving結果時,它會調用一個結果處理程序,它會調用另一個web服務myWSB(value2)。我想知道如何將這個值2傳遞給foo2。這些值:value1和value2取決於被按下的按鈕。傳遞參數

private function fooA(valueA1:int, valueA2:int){ 
    callResponder.token = myWSA(valueA1); 
} 

private function myWSA_resultHandler(event:ResultEvent) { 
    myWSB(value2); //----------> I want to use the parameter, value2, passed in fooA here. 

} 


<fx:Declarations> 
<s:WebService id = "myWebService" 
         wsdl = "http://MyWebService?wsdl" 
         fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"> 
      <s:operation name = "myWSA" 
         result= "myWSA_resultHandler(event)"/> 

</s:WebService> 
<s:CallResponder id = "callResponder" /> 
</fx:Declarations> 

<s:Button id = "button1" 
      label="Button1" 
     click = "fooA(val1, val2)"/> 
<s:Button id = "button2" 
      label="Button2" 
     click = "fooA(val3, val4)"/> 
+0

你這是什麼意思foo2的?它不在你的代碼中,所以很難追蹤你正在尋找的東西。你想用value2做什麼,爲什麼你不能在resultHandler方法中使用它?我不明白你的麻煩是什麼。請澄清,我會盡力幫助。 – gMale 2010-07-10 01:55:13

回答

0

您無法從另一個方法中的一個方法訪問參數。返回到源代碼並訪問原始值。

如果您能夠假設Val1和val2在第一次通話和第二次通話之間不會發生變化,只需使用this.val1即可訪問它們。

如果要假設值可能會改變,或者是呼叫特定的,那麼你會希望將值存儲在第一次調用的時候,假設下,他們可能會改變,你需要寫一個跟蹤持續呼叫及其相關相關屬性的機制。

我懷疑你想要什麼來完成,雖然。將Web服務1和Web服務2合併到同一個調用中會不會更好?

+0

我需要在接收到Web服務1的結果只能調用Web服務2,因此,我在網絡服務1的結果句柄調用Web服務2。這可以防止我在相同的調用中包裝Web服務1和Web服務2,除非我缺少某種方式。 – 2010-07-10 02:08:11

+0

我不明白爲什麼你需要調用Web服務2的Web Service 1後,特別是因爲你所描述的兩個動作之間沒有客戶端交互。 Youv'e沒有描述爲什麼你不能在服務器上連接這兩個東西。 – JeffryHouser 2010-07-10 12:41:56

+0

WebService 1是寫入服務器,WebService 2是從服務器讀取。只有在完成寫操作時,我纔想要調用讀取的Web服務1的結果事件來調用Web服務2. – 2010-07-11 03:39:52