Több erőforrás betöltése esetén célszerű egy betöltést vezérlő menedzser objektumot használni. Ez követi a folyamatban lévő betöltéseket, és akkor hívja meg az onLoad függvényét, ha minden elem sikeresen betöltődött.
Használatára a ThreeJsLoadingManagerTester.html program mutat példát.
Először definiáljuk a menedzser objektumot és rendeljük hozzá a kezelőfüggvényeket.
var manager = new THREE.LoadingManager();
manager.onProgress = function ( item, loaded, total ) {
console.log( 'Manager onProgress: loading of', item, 'finished; ', loaded, ' of ', total, ' objects loaded.' );
var progressString = 'Loading of ' + item + ' finished;<br/>' + loaded + ' of ' + total + ' objects loaded.';
appendInfoPanelText( progressString );
};
manager.onLoad = function () {
console.log( 'Manager onLoad called, render started.' );
appendInfoPanelText( 'Manager onLoad called, rendering started.' );
render();
};
A textúrák és JSON adatok betöltése az eddigiekhez hasonlóan megy, a betöltő objektumok konstruktorának át kell adni paraméterként a manager objektumot.
var textureLoader = new THREE.TextureLoader( manager );
var texture = textureLoader.load( 'assets/texture/tc-earth_daymap.jpg' );
var moonTexture = textureLoader.load( 'assets/texture/moonmap1k.jpg' );
var jsonLoader = new THREE.JSONLoader( manager );
jsonLoader.load( 'assets/models/uvsphere.json', function ( geom, mat ) {
// ...
} );