代码之家  ›  专栏  ›  技术社区  ›  Angelo

在flex中更改WebService操作的resultHandler

  •  0
  • Angelo  · 技术社区  · 16 年前

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

    例如,我声明我的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>
    

    我希望能够将“调用一个”操作的结果更改为另一个结果,因为我计划重新使用同一个Web服务,但结果将被不同地对待。

    我不确定这是否可行:

    ws.operation.Call_One.result = "myOtherResult"
    

    非常感谢您的投入。谢谢。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Gregor Kiddie    16 年前

    不要直接向操作中添加处理程序,而是向WebService添加一个侦听器来处理结果。文档声明,如果结果事件不是由WebService本身处理的,则会对其进行调度。

    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>
    
    推荐文章