在Flex中更改Web服务操作的ResultHandler

时间:2009-08-20 07:18:27

标签: flex service

如何更改/修改Web服务操作的Result属性?

例如,我已将我的WebService声明如下:

<mx:WebService id="ws">
  <mx:operation name="Call_One" result="Call_OneRH(event)" fault="Call_OneFH(event)" />
  <mx:operation name="Call_Two" result="Call_TwoRH(event)" fault="Call_TwoFH(event)" />
</mx:WebService>

我希望能够将“Call_One”操作的结果更改为另一个结果,因为我打算重新使用相同的Web服务,但结果将被区别对待。

我不确定这是否有效:

ws.operation.Call_One.result = "myOtherResult"

输入得到高度赞赏。感谢。

1 个答案:

答案 0 :(得分:1)

不要直接在操作中添加处理程序,而是向Web服务添加一个侦听器来处理结果。文档声明如果Web服务本身没有处理结果事件,则调度结果事件。

public function addListeners() : void {
    ws.addEventListener( ResultEvent.RESULT, Call_OneRH );
}

public function changeListener() : void {
    ws.removeEventListener( ResultEvent.RESULT, Call_OneRH );
    ws.addEventListener( ResultEvent.RESULT, myOtherResult );

<mx:WebService id="ws">
    <mx:operation name="Call_One" fault="Call_OneFH(event)" />
    <mx:operation name="Call_Two" result="Call_TwoRH(event)" fault="Call_TwoFH(event)" />
</mx:WebService>