From 6e7da7c34832c63b14cba7a5c2a7368ed40e72bf Mon Sep 17 00:00:00 2001 From: shmyga Date: Wed, 31 May 2017 17:30:22 +0300 Subject: [PATCH] BaseLoader: fix load text resource from assets --- src/main/haxework/net/BaseLoader.hx | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/main/haxework/net/BaseLoader.hx b/src/main/haxework/net/BaseLoader.hx index 7070cdb..ff9d60a 100755 --- a/src/main/haxework/net/BaseLoader.hx +++ b/src/main/haxework/net/BaseLoader.hx @@ -1,5 +1,6 @@ package haxework.net; +import flash.utils.JSON; import haxe.Timer; import flash.net.URLRequestMethod; import flash.events.ProgressEvent; @@ -79,13 +80,25 @@ class BaseLoader extends Deferred implements ILoader { public function GET(url:String, data:Dynamic = null):Deferred { #if (openfl && lime) if (StringTools.startsWith(url, "%assets%")) { - var path:String = url.substring(9); - var bytes:ByteArray = openfl.Assets.getBytes(path); - if (bytes == null) { - throwError("Bytes is null for asset: " + path); - return null; - } else { - return fromBytes(bytes); + try { + var path:String = url.substring(9); + // ToDo: get text resources with getText method + var extension:String = path.substring(path.lastIndexOf(".")+1, path.length); + if (extension == "json" || extension == "txt") { + var data:T = cast JSON.parse(openfl.Assets.getText(path)); + resolve(data); + return this; + } + var bytes:ByteArray = openfl.Assets.getBytes(path); + if (bytes == null) { + throwError("Bytes is null for asset: " + path); + return this; + } else { + return fromBytes(bytes); + } + } catch (error:Dynamic) { + throwError(error); + return this; } } #end