home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Darbas / kidoz_v1.air / kidoz.swf / scripts / mx / rpc / xml / XMLLoader.as < prev   
Encoding:
Text File  |  2009-05-06  |  2.7 KB  |  94 lines

  1. package mx.rpc.xml
  2. {
  3.    import flash.events.EventDispatcher;
  4.    import mx.core.mx_internal;
  5.    import mx.rpc.AsyncToken;
  6.    import mx.rpc.events.FaultEvent;
  7.    import mx.rpc.events.ResultEvent;
  8.    import mx.rpc.events.XMLLoadEvent;
  9.    import mx.rpc.http.HTTPService;
  10.    import mx.utils.URLUtil;
  11.    
  12.    use namespace mx_internal;
  13.    
  14.    public class XMLLoader extends EventDispatcher
  15.    {
  16.       protected var loader:HTTPService;
  17.       
  18.       public var loadsOutstanding:int;
  19.       
  20.       public function XMLLoader(param1:HTTPService = null)
  21.       {
  22.          super();
  23.          initializeService(param1);
  24.       }
  25.       
  26.       protected function internalLoad(param1:String) : AsyncToken
  27.       {
  28.          ++loadsOutstanding;
  29.          loader.url = param1;
  30.          var _loc2_:AsyncToken = loader.send();
  31.          if(_loc2_ != null)
  32.          {
  33.             _loc2_.location = param1;
  34.          }
  35.          return _loc2_;
  36.       }
  37.       
  38.       protected function initializeService(param1:HTTPService = null) : void
  39.       {
  40.          loader = new HTTPService();
  41.          if(param1 != null)
  42.          {
  43.             loader.mx_internal::asyncRequest = param1.mx_internal::asyncRequest;
  44.             if(param1.destination != null)
  45.             {
  46.                loader.destination = param1.destination;
  47.             }
  48.             loader.useProxy = param1.useProxy;
  49.             loader.rootURL = param1.rootURL;
  50.             loader.headers = param1.headers;
  51.          }
  52.          loader.addEventListener(ResultEvent.RESULT,resultHandler);
  53.          loader.addEventListener(FaultEvent.FAULT,faultHandler);
  54.          loader.resultFormat = HTTPService.RESULT_FORMAT_E4X;
  55.       }
  56.       
  57.       public function load(param1:String) : void
  58.       {
  59.          param1 = getQualifiedLocation(param1);
  60.          internalLoad(param1);
  61.       }
  62.       
  63.       protected function faultHandler(param1:FaultEvent) : void
  64.       {
  65.          --loadsOutstanding;
  66.          dispatchEvent(param1);
  67.       }
  68.       
  69.       protected function getQualifiedLocation(param1:String, param2:String = null) : String
  70.       {
  71.          if(param2 != null)
  72.          {
  73.             param1 = URLUtil.getFullURL(param2,param1);
  74.          }
  75.          else
  76.          {
  77.             param1 = URLUtil.getFullURL(loader.rootURL,param1);
  78.          }
  79.          return param1;
  80.       }
  81.       
  82.       protected function resultHandler(param1:ResultEvent) : void
  83.       {
  84.          --loadsOutstanding;
  85.          var _loc2_:XML = XML(param1.result);
  86.          var _loc3_:AsyncToken = param1.token;
  87.          var _loc4_:String = _loc3_ == null ? null : _loc3_.location;
  88.          var _loc5_:XMLLoadEvent = XMLLoadEvent.createEvent(_loc2_,_loc4_);
  89.          dispatchEvent(_loc5_);
  90.       }
  91.    }
  92. }
  93.  
  94.