好的我有问题。我想在.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不起作用。任何帮助或洞察力都非常赞赏。
答案 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();
}