将WebService传递给flex中的其他类

时间:2012-03-28 11:42:19

标签: web-services flex

好的我有问题。我想在.mxml中声明一个webservice并将其传递给一个单独的类中的函数。问题:当成功调用时,callresponder的lastresult永远不会更新。

或者我可能会错过与第二类中的CallResponder和AsyncToken有关的事情......

my.mxml中的代码

<fx:Declarations> 
    <myws:Myws id="ws" />       
</fx:Declarations>
<fx:Script><![CDATA[
    var myClass:MyClass = new MyClass();
    myClass.callWS(ws);
]]></fx:Script>

myClass.as中的代码

public class MyClass
{               
    protected var cR:CallResponder = new CallResponder();       
    public function callWS(ws:Myws):void{
        var cR:CallResponder = new CallResponder();
        cR.addEventListener(ResultEvent.RESULT, resultHandler);
        cR.addEventListener(FaultEvent.FAULT, faultHandler);
        cR.token = ws.MyCall(); 
    }
        private function resultHandler(event:ResultEvent):void{
            cR.lastResult;  // --> this is undefined
            cR.token; // --> this is null
    }
}

我实际上可以从ResultEvent中读取结果,但更愿意知道为什么callresponder不起作用。任何帮助或洞察力都非常赞赏。

1 个答案:

答案 0 :(得分:1)

protected var cR:CallResponder范围内MyClass,您在函数范围var cR:CallResponder中定义callWS。试试这个:

public function callWS(ws:Myws):void{
    cR = new CallResponder();
    cR.addEventListener(ResultEvent.RESULT, resultHandler, false, 0, true);
    cR.addEventListener(FaultEvent.FAULT, faultHandler, false, 0, true);
    cR.token = ws.MyCall(); 
}