load from openfl assets
This commit is contained in:
@@ -16,7 +16,7 @@ class BaseLogger implements ILogger {
|
||||
return "[" + level + "] " + tag + " - " + message + (error == null ? "" : " {" + error2strign(error) + "}");
|
||||
}
|
||||
|
||||
private function error2strign(error:Dynamic):String {
|
||||
public static function error2strign(error:Dynamic):String {
|
||||
return if (Std.is(error, Error)) {
|
||||
cast(error, Error).getStackTrace();
|
||||
} else if (Std.is(error, ErrorEvent)) {
|
||||
|
||||
@@ -54,6 +54,13 @@ class BaseLoader<T> implements ILoader<T> {
|
||||
}
|
||||
|
||||
public function GET(url:String, data:Dynamic = null):ICallback<T> {
|
||||
#if openfl
|
||||
if (StringTools.startsWith(url, "%assets%")) {
|
||||
var path:String = url.substring(9);
|
||||
var bytes:ByteArray = openfl.Assets.getBytes(path);
|
||||
return fromBytes(bytes);
|
||||
}
|
||||
#end
|
||||
return request(url, URLRequestMethod.GET, data);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package haxework.net;
|
||||
|
||||
import haxe.Timer;
|
||||
import flash.utils.ByteArray;
|
||||
import flash.net.URLRequestHeader;
|
||||
import flash.net.URLRequestMethod;
|
||||
import haxework.net.callback.ICallback;
|
||||
@@ -41,6 +43,18 @@ class BaseURLLoader<T> extends BaseLoader<T> {
|
||||
loader.load(request);
|
||||
}
|
||||
|
||||
override private function internalFromBytes(data:ByteArray):Void {
|
||||
var data:T = extrudeResultFromBytes(data);
|
||||
var c:ICallback<T> = callback;
|
||||
c.callSuccessAsync(data);
|
||||
Timer.delay(dispose, 1);
|
||||
}
|
||||
|
||||
private function extrudeResultFromBytes(bytes:ByteArray):T {
|
||||
throw "Abstract";
|
||||
return null;
|
||||
}
|
||||
|
||||
private function buildLoader():URLLoader {
|
||||
var loader:URLLoader = new URLLoader();
|
||||
loader.dataFormat = dataFormat;
|
||||
|
||||
@@ -14,4 +14,8 @@ class BytesLoader extends BaseURLLoader<ByteArray> {
|
||||
override private function extrudeResult(e:Event):ByteArray {
|
||||
return cast(cast(e.currentTarget, URLLoader).data, ByteArray);
|
||||
}
|
||||
|
||||
override private function extrudeResultFromBytes(bytes:ByteArray):ByteArray {
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package haxework.net;
|
||||
|
||||
import flash.utils.ByteArray;
|
||||
import flash.errors.Error;
|
||||
import flash.events.Event;
|
||||
import flash.net.URLLoader;
|
||||
@@ -18,4 +19,16 @@ class JsonLoader<T> extends BaseURLLoader<T> {
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
override private function extrudeResultFromBytes(bytes:ByteArray):T {
|
||||
var str:String = null;
|
||||
var data:T = null;
|
||||
try {
|
||||
str = bytes.readUTFBytes(bytes.length);
|
||||
data = Json.parse(str);
|
||||
} catch (error:Dynamic) {
|
||||
throw new Error(error + ": " + str);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user