home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / com / facebook / delegates / AbstractFileUploadDelegate.as next >
Encoding:
Text File  |  2010-06-23  |  2.5 KB  |  85 lines

  1. package com.facebook.delegates
  2. {
  3.    import com.facebook.facebook_internal;
  4.    import com.facebook.net.FacebookCall;
  5.    import com.facebook.session.WebSession;
  6.    import com.facebook.utils.PostRequest;
  7.    import flash.events.Event;
  8.    import flash.net.FileReference;
  9.    import flash.net.URLLoaderDataFormat;
  10.    import flash.net.URLRequest;
  11.    import flash.net.URLRequestMethod;
  12.    import flash.utils.ByteArray;
  13.    
  14.    use namespace facebook_internal;
  15.    
  16.    public class AbstractFileUploadDelegate extends WebDelegate
  17.    {
  18.       protected var ba:ByteArray;
  19.       
  20.       public function AbstractFileUploadDelegate(param1:FacebookCall, param2:WebSession)
  21.       {
  22.          super(param1,param2);
  23.          this.ba = new ByteArray();
  24.       }
  25.       
  26.       protected function uploadByteArray(param1:ByteArray) : void
  27.       {
  28.          var _loc3_:String = null;
  29.          var _loc4_:URLRequest = null;
  30.          var _loc2_:PostRequest = new PostRequest();
  31.          for(_loc3_ in call.args)
  32.          {
  33.             if(_loc3_ != "data")
  34.             {
  35.                _loc2_.writePostData(_loc3_,call.args[_loc3_]);
  36.             }
  37.          }
  38.          _loc2_.writeFileData("fn" + call.args["call_id"] + "." + this.getExt(),param1,this.getContentType());
  39.          _loc2_.close();
  40.          _loc4_ = new URLRequest();
  41.          _loc4_.method = URLRequestMethod.POST;
  42.          _loc4_.contentType = "multipart/form-data; boundary=" + _loc2_.boundary;
  43.          _loc4_.data = _loc2_.getPostData();
  44.          _loc4_.url = _session.rest_url;
  45.          createURLLoader();
  46.          loader.dataFormat = URLLoaderDataFormat.BINARY;
  47.          loader.load(_loc4_);
  48.       }
  49.       
  50.       protected function onFileRefComplete(param1:Event) : void
  51.       {
  52.          fileRef = call.args.data as FileReference;
  53.          this.uploadByteArray(fileRef["data"]);
  54.       }
  55.       
  56.       override protected function onDataComplete(param1:Event) : void
  57.       {
  58.          var _loc3_:String = null;
  59.          var _loc2_:ByteArray = param1.target.data as ByteArray;
  60.          if(_loc2_ == null)
  61.          {
  62.             super.onDataComplete(param1);
  63.          }
  64.          else
  65.          {
  66.             _loc3_ = _loc2_.readUTFBytes(_loc2_.length);
  67.             _loc2_.length = 0;
  68.             _loc2_ = null;
  69.             handleResult(_loc3_);
  70.          }
  71.       }
  72.       
  73.       protected function getExt() : String
  74.       {
  75.          return null;
  76.       }
  77.       
  78.       protected function getContentType() : String
  79.       {
  80.          return null;
  81.       }
  82.    }
  83. }
  84.  
  85.