Repository: flex-asjs
Updated Branches:
  refs/heads/develop cc22300be -> 298d2041f


Added callbacks


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/298d2041
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/298d2041
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/298d2041

Branch: refs/heads/develop
Commit: 298d2041ff2c02c203764ed22fb11e131e4b092e
Parents: cc22300
Author: Harbs <[email protected]>
Authored: Tue Jul 5 13:09:05 2016 +0300
Committer: Harbs <[email protected]>
Committed: Tue Jul 5 13:09:05 2016 +0300

----------------------------------------------------------------------
 .../flex/org/apache/flex/net/URLBinaryLoader.as | 37 +++++++--
 .../main/flex/org/apache/flex/net/URLLoader.as  | 78 ++++++++++++++++++
 .../main/flex/org/apache/flex/net/URLStream.as  | 86 +++++++++++++++++++-
 3 files changed, 191 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/298d2041/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
index 2dfc490..ff9121b 100644
--- 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
+++ 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
@@ -20,7 +20,6 @@ package org.apache.flex.net
 {    
     
     import org.apache.flex.events.Event;
-    import org.apache.flex.events.EventDispatcher;
     import org.apache.flex.events.ProgressEvent;
     import org.apache.flex.utils.BinaryData;
 
@@ -73,43 +72,63 @@ package org.apache.flex.net
         {
             super();
             stream = new URLStream();
-            stream.addEventListener(HTTPConstants.COMPLETE, onComplete);
+            stream.addEventListener(HTTPConstants.COMPLETE, completeHandler);
         }
         
+               /**
+                *  Makes the URL request.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */        
         public function load(request:URLRequest):void
         {
             stream.load(request);
         }
         
+               /**
+                *  Cancels the URL request
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */        
         public function close():void
         {
             stream.close();
+                       //TODO do we need a callback for camceling?
         }
         
-        private function redirectEvent(event:Event):void
-        {
-            dispatchEvent(event);
-        }
-        
-        private function onComplete(event:Event):void
+        private function completeHandler(event:Event):void
         {
             data = stream.response;
             if (data)
             {
                 dispatchEvent(event);
+                               if(onComplete)
+                                       onComplete(this);
+
             }
             else
             {
                 // TODO dipatch error event?
                 dispatchEvent(new Event(HTTPConstants.IO_ERROR));
+                               if(onError)
+                                       onError(this);
             }
+                       cleanupCallbacks();
         }
         
-        private function onProgress(event:ProgressEvent):void
+        private function progressHandler(event:ProgressEvent):void
         {
             this.bytesLoaded = event.current
             this.bytesTotal = event.total;
             dispatchEvent(event);
+                       if(onProgress)
+                               onProgress(this);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/298d2041/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLLoader.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLLoader.as 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLLoader.as
index 809e120..102f525 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLLoader.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLLoader.as
@@ -86,5 +86,83 @@ package org.apache.flex.net
                {
                        throw new Error("URLLoader should not be instantiated. 
Use a derived class instead.")
                }
+               
+               protected function cleanupCallbacks():void
+               {
+                       onComplete = null;
+                       onError = null;
+                       onProgress = null;
+               }
+               /**
+                *  Callback for complete event.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public var onComplete:Function;
+               
+               /**
+                *  Callback for error event.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public var onError:Function;
+               
+               /**
+                *  Callback for progress event.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public var onProgress:Function;
+               
+               /**
+                *  Convenience function for complete event to allow chaining.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public function complete(callback:Function):URLLoader
+               {
+                       onComplete = callback;
+                       return this;
+               }
+               
+               /**
+                *  Convenience function for error event to allow chaining.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public function error(callback:Function):URLLoader
+               {
+                       onError = callback;
+                       return this;
+               }
+               
+               /**
+                *  Convenience function for progress event to allow chaining.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public function progress(callback:Function):URLLoader
+               {
+                       onProgress = callback;
+                       return this;
+               }
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/298d2041/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as 
b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
index 7b5ff89..e2b1654 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
@@ -107,6 +107,9 @@ package org.apache.flex.net
         protected function flash_complete(event:flash.events.Event):void
         {
             dispatchEvent(new 
org.apache.flex.events.Event(HTTPConstants.COMPLETE));
+                       if(onComplete)
+                               onComplete();
+                       cleanupCallbacks();
         }
         COMPILE::SWF
         protected function 
flash_progress(event:flash.events.ProgressEvent):void
@@ -129,6 +132,9 @@ package org.apache.flex.net
             if (xhr.readyState == 4 && xhr.status == 200)
             {
                 dispatchEvent(new 
org.apache.flex.events.Event(HTTPConstants.COMPLETE));
+                               if(onComplete)
+                                       onComplete();
+                               cleanupHandlers();
             }else if (xhr.readyState==4&&xhr.status==404){
                 //                    dispatchEvent(new 
IOErrorEvent(IOErrorEvent.IO_ERROR));
             }
@@ -146,9 +152,87 @@ package org.apache.flex.net
             }
 
             //TODO send an event that it's been aborted
+
+                       cleanupCallbacks();
+
         }
+               private function cleanupCallbacks():void
+               {
+                       onComplete = null;
+                       onError = null;
+                       onProgress = null;
+               }
+               /**
+                *  Callback for complete event.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
         public var onComplete:Function;
+               
+               /**
+                *  Callback for error event.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
         public var onError:Function;
-    }
+               
+               /**
+                *  Callback for progress event.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public var onProgress:Function;
+               
+               /**
+                *  Convenience function for complete event to allow chaining.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public function 
complete(callback:Function):org.apache.flex.net.URLStream
+               {
+                       onComplete = callback;
+                       return this;
+               }
+               
+               /**
+                *  Convenience function for error event to allow chaining.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public function 
error(callback:Function):org.apache.flex.net.URLStream
+               {
+                       onError = callback;
+                       return this;
+               }
+
+               /**
+                *  Convenience function for progress event to allow chaining.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.7.0
+                */             
+               public function 
progress(callback:Function):org.apache.flex.net.URLStream
+               {
+                       onProgress = callback;
+                       return this;
+               }
+}
 }
 

Reply via email to