diff --git a/templates/haxe/DefaultAssetLibrary.hx b/templates/haxe/DefaultAssetLibrary.hx index f83ca4cc0..8df4b56fc 100644 --- a/templates/haxe/DefaultAssetLibrary.hx +++ b/templates/haxe/DefaultAssetLibrary.hx @@ -8,6 +8,7 @@ import lime.audio.AudioSource; import lime.audio.openal.AL; import lime.audio.AudioBuffer; import lime.graphics.Image; +import lime.system.WorkerThread; import lime.text.Font; import lime.utils.ByteArray; import lime.utils.UInt8Array; @@ -223,13 +224,13 @@ class DefaultAssetLibrary extends AssetLibrary { var bytes:ByteArray = null; var loader = Preloader.loaders.get (path.get (id)); - + if (loader == null) { - + return null; - + } - + var data = loader.data; if (Std.is (data, String)) { @@ -378,13 +379,13 @@ class DefaultAssetLibrary extends AssetLibrary { var bytes:ByteArray = null; var loader = Preloader.loaders.get (path.get (id)); - + if (loader == null) { - + return null; } - + var data = loader.data; if (Std.is (data, String)) { @@ -472,6 +473,7 @@ class DefaultAssetLibrary extends AssetLibrary { public override function loadAudioBuffer (id:String, handler:AudioBuffer -> Void):Void { #if (flash) + if (path.exists (id)) { var soundLoader = new Sound (); @@ -482,13 +484,17 @@ class DefaultAssetLibrary extends AssetLibrary { handler (audioBuffer); }); + soundLoader.load (new URLRequest (path.get (id))); } else { + handler (getAudioBuffer (id)); } + #else + handler (getAudioBuffer (id)); #end @@ -519,29 +525,38 @@ class DefaultAssetLibrary extends AssetLibrary { handler (getBytes (id)); } - + #elseif html5 - + if (path.exists (id)) { - + var loader = new URLLoader (); loader.dataFormat = BINARY; loader.onComplete.add (function (_):Void { - - handler(loader.data); - - }); - loader.load (new URLRequest (path.get (id))); + handler (loader.data); + + }); + + loader.load (new URLRequest (path.get (id))); + } else { - + handler (getBytes (id)); - + } #else - handler (getBytes (id)); + var worker = new WorkerThread (); + worker.doWork = function () { + + var bytes = getBytes (id); + worker.sendUpdate (bytes); + + } + worker.onUpdate.add (function (msg) handler (msg)); + worker.run (); #end @@ -570,26 +585,34 @@ class DefaultAssetLibrary extends AssetLibrary { } #elseif html5 - + if (path.exists (id)) { - + var image = new js.html.Image (); image.onload = function (_):Void { - + handler (Image.fromImageElement (image)); - + } image.src = id; - + } else { - + handler (getImage (id)); - + } - + #else - handler (getImage (id)); + var worker = new WorkerThread (); + worker.doWork = function () { + + var image = getImage (id); + worker.sendUpdate (image); + + } + worker.onUpdate.add (function (msg) handler (msg)); + worker.run (); #end @@ -699,10 +722,11 @@ class DefaultAssetLibrary extends AssetLibrary { var loader = new URLLoader (); loader.onComplete.add (function (_):Void { - - handler(loader.data); - + + handler (loader.data); + }); + loader.load (new URLRequest (path.get (id))); } else {