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; }