This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 24a4254  get MX FileReference.load() to return a ByteArray.  Should 
fix #708
24a4254 is described below

commit 24a4254948ade714ebc0b9ba8f4e5a211d4c101e
Author: Alex Harui <aha...@apache.org>
AuthorDate: Sun May 10 09:38:05 2020 -0700

    get MX FileReference.load() to return a ByteArray.  Should fix #708
---
 .../src/main/royale/mx/net/FileReference.as        | 14 +++++-
 .../supportClasses/ByteArrayFileLoader.as}         | 56 +++++++---------------
 .../MXRoyale/src/main/royale/mx/utils/ByteArray.as |  4 +-
 .../org/apache/royale/file/beads/FileLoader.as     |  6 ++-
 4 files changed, 35 insertions(+), 45 deletions(-)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as
index 080d46d..5e07293 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as
@@ -30,6 +30,7 @@ package mx.net
  import org.apache.royale.net.URLRequest;
  import org.apache.royale.file.beads.FileUploader;
  import mx.net.beads.FileUploaderUsingFormData;
+ import mx.net.supportClasses.ByteArrayFileLoader;
 
    public class FileReference extends FileProxy
    {
@@ -76,10 +77,21 @@ package mx.net
                  if (!_loader)
                  {
                          // FileLoaderAndUploader has injected this
-                         _loader = getBeadByType(FileLoader) as FileLoader;
+                         _loader = getBeadByType(ByteArrayFileLoader) as 
FileLoader;
+                         if (!_loader)
+                         {
+                                  _loader = new ByteArrayFileLoader();
+                                  addBead(_loader);
+                         }
                  }
+                 _loader.addEventListener(Event.COMPLETE, 
loaderCompleteHandler);
                  _loader.load();
          }
+       
+         public function loaderCompleteHandler(event:Event):void
+         {
+                 dispatchEvent(new Event(Event.COMPLETE));
+         }
          
          public function get data():ByteArray
          {
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/net/supportClasses/ByteArrayFileLoader.as
similarity index 54%
copy from frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as
copy to 
frameworks/projects/MXRoyale/src/main/royale/mx/net/supportClasses/ByteArrayFileLoader.as
index 5e7da5f..caf580f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/net/supportClasses/ByteArrayFileLoader.as
@@ -17,50 +17,26 @@
 //
 
////////////////////////////////////////////////////////////////////////////////
 
-package mx.utils
+package mx.net.supportClasses
 {
-COMPILE::SWF{
-       import flash.utils.ByteArray;
-}
-COMPILE::JS{
-import org.apache.royale.utils.BinaryData;
-import org.apache.royale.utils.net.IDataInput;
-import org.apache.royale.utils.net.IDataOutput;
-
-}
 
-COMPILE::SWF{
-       public class ByteArray extends flash.utils.ByteArray
-       {       
-         public function ByteArray()
-         {
-         super();
-         }
-       }                                                                       
                                
-}
+ import mx.utils.ByteArray;
+ import org.apache.royale.file.beads.FileLoader;
+ import org.apache.royale.file.beads.FileModel;
+ import org.apache.royale.events.Event;
 
-COMPILE::JS{
-       public class ByteArray extends org.apache.royale.utils.BinaryData 
implements IDataInput, IDataOutput
-       {       
-               public function ByteArray()
-               {
-               super();
-               }
-               public function readMultiByte(length:uint, 
charSet:String):String
+   public class ByteArrayFileLoader extends FileLoader
+   {
+       COMPILE::JS 
+               override protected function fileLoadHandler(event:Event):void
                {
-               return "";
+                       fileModel.fileContent = new 
ByteArray(event.target.result);
+                       dispatchEvent(new Event(Event.COMPLETE));
                }
-               public function writeMultiByte(value:String, 
charSet:String):void
-               {
-               }
-               public function readObject():*
-        {
-           return null;
-        }
-        public function writeObject(object:*):void
-        {
-               }
-       }
-}
+               
+
+   }
+
+            
 
 }
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as
index 5e7da5f..76f9389 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/utils/ByteArray.as
@@ -42,9 +42,9 @@ COMPILE::SWF{
 COMPILE::JS{
        public class ByteArray extends org.apache.royale.utils.BinaryData 
implements IDataInput, IDataOutput
        {       
-               public function ByteArray()
+               public function ByteArray(bytes:Object = null)
                {
-               super();
+                       super(bytes);
                }
                public function readMultiByte(length:uint, 
charSet:String):String
                {
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
index bfebafd..3860968 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
@@ -19,6 +19,7 @@ package org.apache.royale.file.beads
 {
        import org.apache.royale.core.IBead;
        import org.apache.royale.core.IStrand;
+       import org.apache.royale.events.EventDispatcher;
        import org.apache.royale.file.FileProxy;
        import org.apache.royale.file.IFileModel;
        import org.apache.royale.utils.BinaryData;
@@ -44,7 +45,7 @@ package org.apache.royale.file.beads
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9
         */
-       public class FileLoader implements IBead
+       public class FileLoader extends EventDispatcher implements IBead
        {
                private var _strand:IStrand;
 
@@ -83,6 +84,7 @@ package org.apache.royale.file.beads
                protected function fileLoadHandler(event:Event):void
                {
                        fileModel.fileContent = new 
BinaryData(event.target.result);
+                       dispatchEvent(new Event(Event.COMPLETE));
                }
                
                /**
@@ -98,7 +100,7 @@ package org.apache.royale.file.beads
                        _strand = value;
                }
                
-               private function get fileModel():IFileModel
+               protected function get fileModel():IFileModel
                {
                        return (_strand as FileProxy).model as IFileModel;
                }

Reply via email to