2010-07-10 79 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