Hack support for named library preload (need to revise this more)

This commit is contained in:
Joshua Granick
2016-12-24 00:42:02 -08:00
parent c31151e441
commit 6b4f70027f
2 changed files with 52 additions and 5 deletions

View File

@@ -34,12 +34,14 @@ class Preloader #if flash extends Sprite #end {
public var onComplete = new Event<Void->Void> ();
public var onProgress = new Event<Int->Int->Void> ();
private var initLibraryNames:Bool;
private var itemsProgressLoaded:Int;
private var itemsProgressTotal:Int;
private var libraries:Array<AssetLibrary>;
private var libraryNames:Array<String>;
private var loadedLibraries:Int;
private var loadedStage:Bool;
private var itemsProgressLoaded:Int;
private var itemsProgressTotal:Int;
public function new () {
@@ -48,6 +50,7 @@ class Preloader #if flash extends Sprite #end {
#end
libraries = new Array<AssetLibrary> ();
libraryNames = new Array<String> ();
onProgress.add (update);
@@ -61,6 +64,17 @@ class Preloader #if flash extends Sprite #end {
}
public function addLibraryName (name:String):Void {
if (libraryNames.indexOf (name) == -1) {
libraryNames.push (name);
}
}
public function create (config:Config):Void {
#if flash
@@ -92,7 +106,7 @@ class Preloader #if flash extends Sprite #end {
library.load ().onProgress (function (_, _) {
updateItemsProgress();
updateItemsProgress ();
}).onComplete (function (_) {
@@ -101,12 +115,18 @@ class Preloader #if flash extends Sprite #end {
}).onError (function (e) {
trace(e);
trace (e);
});
}
for (name in libraryNames) {
itemsProgressTotal += 1;
}
loadedLibraries++;
updateProgress ();
@@ -142,7 +162,32 @@ class Preloader #if flash extends Sprite #end {
update (itemsProgressLoaded, itemsProgressTotal);
// update (loadedLibraries, libraries.length);
if (#if flash loadedStage && #end loadedLibraries == libraries.length) {
if (loadedLibraries == libraries.length && !initLibraryNames) {
initLibraryNames = true;
for (name in libraryNames) {
Assets.loadLibrary (name).onProgress (function (_, _) {
updateItemsProgress ();
}).onComplete (function (_) {
loadedLibraries++;
updateProgress ();
}).onError (function (e) {
trace (e);
});
}
}
if (#if flash loadedStage && #end loadedLibraries == (libraries.length + libraryNames.length)) {
start ();

View File

@@ -75,6 +75,8 @@ class ApplicationMain {
preloader.create (config);
preloader.addLibrary (library);
::if (libraries != null)::::foreach libraries::::if (preload)::preloader.addLibraryName ("::name::");
::end::::end::::end::
preloader.load ();
start ();