home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / rpc / AsyncToken.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  2.8 KB  |  113 lines

  1. package mx.rpc
  2. {
  3.    import flash.events.EventDispatcher;
  4.    import mx.core.mx_internal;
  5.    import mx.events.PropertyChangeEvent;
  6.    import mx.messaging.messages.IMessage;
  7.    import mx.rpc.events.FaultEvent;
  8.    import mx.rpc.events.ResultEvent;
  9.    
  10.    use namespace mx_internal;
  11.    
  12.    public dynamic class AsyncToken extends EventDispatcher
  13.    {
  14.       private var _message:IMessage;
  15.       
  16.       private var _responders:Array;
  17.       
  18.       private var _result:Object;
  19.       
  20.       public function AsyncToken(param1:IMessage = null)
  21.       {
  22.          super();
  23.          _message = param1;
  24.       }
  25.       
  26.       public function addResponder(param1:IResponder) : void
  27.       {
  28.          if(_responders == null)
  29.          {
  30.             _responders = [];
  31.          }
  32.          _responders.push(param1);
  33.       }
  34.       
  35.       mx_internal function setMessage(param1:IMessage) : void
  36.       {
  37.          _message = param1;
  38.       }
  39.       
  40.       public function get message() : IMessage
  41.       {
  42.          return _message;
  43.       }
  44.       
  45.       mx_internal function applyResult(param1:ResultEvent) : void
  46.       {
  47.          var _loc2_:uint = 0;
  48.          var _loc3_:IResponder = null;
  49.          mx_internal::setResult(param1.result);
  50.          if(_responders != null)
  51.          {
  52.             _loc2_ = 0;
  53.             while(_loc2_ < _responders.length)
  54.             {
  55.                _loc3_ = _responders[_loc2_];
  56.                if(_loc3_ != null)
  57.                {
  58.                   _loc3_.result(param1);
  59.                }
  60.                _loc2_++;
  61.             }
  62.          }
  63.       }
  64.       
  65.       public function hasResponder() : Boolean
  66.       {
  67.          return _responders != null && _responders.length > 0;
  68.       }
  69.       
  70.       public function get responders() : Array
  71.       {
  72.          return _responders;
  73.       }
  74.       
  75.       mx_internal function applyFault(param1:FaultEvent) : void
  76.       {
  77.          var _loc2_:uint = 0;
  78.          var _loc3_:IResponder = null;
  79.          if(_responders != null)
  80.          {
  81.             _loc2_ = 0;
  82.             while(_loc2_ < _responders.length)
  83.             {
  84.                _loc3_ = _responders[_loc2_];
  85.                if(_loc3_ != null)
  86.                {
  87.                   _loc3_.fault(param1);
  88.                }
  89.                _loc2_++;
  90.             }
  91.          }
  92.       }
  93.       
  94.       [Bindable(event="propertyChange")]
  95.       public function get result() : Object
  96.       {
  97.          return _result;
  98.       }
  99.       
  100.       mx_internal function setResult(param1:Object) : void
  101.       {
  102.          var _loc2_:PropertyChangeEvent = null;
  103.          if(_result !== param1)
  104.          {
  105.             _loc2_ = PropertyChangeEvent.createUpdateEvent(this,"result",_result,param1);
  106.             _result = param1;
  107.             dispatchEvent(_loc2_);
  108.          }
  109.       }
  110.    }
  111. }
  112.  
  113.