BaseLoader: fix load text resource from assets

This commit is contained in:
2017-05-31 17:30:22 +03:00
parent f32085e053
commit 6e7da7c348

View File

@@ -1,5 +1,6 @@
package haxework.net;
import flash.utils.JSON;
import haxe.Timer;
import flash.net.URLRequestMethod;
import flash.events.ProgressEvent;
@@ -79,14 +80,26 @@ class BaseLoader<T> extends Deferred<T> implements ILoader<T> {
public function GET(url:String, data:Dynamic = null):Deferred<T> {
#if (openfl && lime)
if (StringTools.startsWith(url, "%assets%")) {
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 null;
return this;
} else {
return fromBytes(bytes);
}
} catch (error:Dynamic) {
throwError(error);
return this;
}
}
#end
return request(url, URLRequestMethod.GET, data);