2014-10-14 3 views
1

В настоящее время я загружаю кучу элементов модели и добавляю их в группу. Затем я хочу, чтобы вы могли перемещать группу как единое целое после загрузки.сгруппированные модели collada 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); 

Update

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

ответ

0

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

<body onload="myFunction()">