2014-10-14 3 views
1

현재 모델의 여러 요소를로드하여 그룹에 추가하고 있습니다. 그런 다음 그룹을로드 한 후 전체 단위로 그룹을 이동할 수 있기를 원합니다.그룹화 된 collada 모델 onload three.js

내 문제는, 내 모델이 모두로드되었음을 확인한 후에 어떻게 코드를 실행할 수 있습니까? colloadLoader & 콜백 함수와 함께 .onload 함수를 사용하는 방법을 이해할 수 없습니다. 또한, 내가 여기있는 것처럼 자기 실행 기능을 사용하는 것은 나쁜 생각입니까? 나는 목록을 통과하고 모든 모델에서로드하는 다른 방법을 확신하지 못합니다.

내 코드는 다음과 같습니다. 나는 "완전한"카운터를 사용하여 해킹을 시도했지만 항상 작동하지는 않습니다. 감사! 나는에서로드 고유의 개체 목록> 1이있는 경우

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 개 밖에없는 경우는 그 오브젝트를로드하지 않습니다. 이 안에 다 넣으면

답변

0

그것을 작동합니다 :

<body onload="myFunction()"> 
관련 문제