diff --git a/lime/app/Config.hx b/lime/app/Config.hx index f1b01affd..ea1aa3c8a 100644 --- a/lime/app/Config.hx +++ b/lime/app/Config.hx @@ -9,6 +9,7 @@ typedef Config = { @:optional var depthBuffer:Bool; #if (js && html5) @:optional var element:js.html.HtmlElement; + @:optional var assetsPrefix:String; #end @:optional var fps:Int; @:optional var fullscreen:Bool; @@ -20,4 +21,4 @@ typedef Config = { @:optional var vsync:Bool; @:optional var width:Int; -} \ No newline at end of file +} diff --git a/lime/system/System.hx b/lime/system/System.hx index 3720d3427..bc40aab76 100644 --- a/lime/system/System.hx +++ b/lime/system/System.hx @@ -38,7 +38,7 @@ class System { #if (js && html5) @:keep @:expose("lime.embed") - public static function embed (element:Dynamic, width:Null = null, height:Null = null, background:String = null) { + public static function embed (element:Dynamic, width:Null = null, height:Null = null, background:String = null, assetsPrefix:String = null) { var htmlElement:HtmlElement = null; @@ -91,6 +91,7 @@ class System { ApplicationMain.config.element = htmlElement; ApplicationMain.config.width = width; ApplicationMain.config.height = height; + ApplicationMain.config.assetsPrefix = assetsPrefix; ApplicationMain.create (); #end @@ -436,4 +437,4 @@ class System { } -#end \ No newline at end of file +#end diff --git a/templates/haxe/ApplicationMain.hx b/templates/haxe/ApplicationMain.hx index 5bc043672..fcce2574d 100644 --- a/templates/haxe/ApplicationMain.hx +++ b/templates/haxe/ApplicationMain.hx @@ -32,6 +32,8 @@ class ApplicationMain { ::else::types.push (null);::end:: ::end::::end:: + urls = [for (url in urls) Assets.getPath(url)]; + preloader.load (urls, types); #end @@ -99,4 +101,4 @@ class ApplicationMain { #end -} \ No newline at end of file +} diff --git a/templates/haxe/DefaultAssetLibrary.hx b/templates/haxe/DefaultAssetLibrary.hx index 6de3c49c7..fafa1dc33 100644 --- a/templates/haxe/DefaultAssetLibrary.hx +++ b/templates/haxe/DefaultAssetLibrary.hx @@ -57,6 +57,13 @@ class DefaultAssetLibrary extends AssetLibrary { type.set (id, AssetType.$$upper(::type::)); ::end::::end:: + var assetsPrefix = ApplicationMain.config.assetsPrefix; + if (assetsPrefix != null) { + for (k in path.keys()) { + path.set(k, assetsPrefix + path[k]); + } + } + #else #if openfl