сгруппированные модели коллады onload three.js

В настоящее время я загружаю кучу элементов модели и добавляю их в группу. Затем я хочу иметь возможность перемещать группу как единое целое после их загрузки.

Моя проблема в том, как я могу запустить код после того, как я убедился, что все мои модели загружены? Я не понимаю, как использовать функцию .onload с colladaLoader и его функциями обратного вызова. Кроме того, это плохая идея использовать самовыполняющуюся функцию, как у меня здесь? Я не знаю, как еще просмотреть список и загрузить все модели.

Мой код ниже. Я пытался использовать хак, используя счетчик «завершено», но он не работает все время. Спасибо!

for ( var i=0; i<object.asset.length; i++ ) {

              loader = new THREE.ColladaLoader();
              asset = furniture.asset[i];

    (function(asset) {

                    loader.load(asset["path"], function(collada, materials) {

                        //this function scales & positions model
                        var mesh = daeAttributes(collada, object, asset, newMaterial);

                        var scene = get_scene();
                        group.add( mesh );
                        complete++;

                        //when all assets have been loaded, add the group to the scene  
                        if (complete===object.asset.length-1) {

                           //want to move the group once all the models are loaded
                           group = moveModel(group, object);
                           scene.add( group );
                           render();

                        };           
                    });                       
              })(asset);

Обновлять

Итак, если у меня есть список> 1 уникальных объектов для загрузки, он работает. Если есть только 1 объект, он не загружает этот объект.


person Laura    schedule 14.10.2014    source источник


Ответы (1)


Если вы поместите все внутрь этого, это должно работать:

<body onload="myFunction()">
person Phil Tornando    schedule 17.10.2014