Передача WebService другому классу в flex - PullRequest
0 голосов
/ 28 марта 2012

Хорошо, у меня проблема.Я хочу объявить веб-сервис в .mxml и передать его функции в отдельный класс.Проблема: последний результат вызова не обновляется при успешном выполнении вызова.

Или я мог упустить что-то связанное с 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 Ответ

1 голос
/ 28 марта 2012

У вас есть 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(); 
}
...