You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2020/05/10 16:38:43 UTC
[royale-asjs] branch develop updated: get MX FileReference.load()
to return a ByteArray. Should fix #708
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 <ah...@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;
}