【问题标题】:grouped collada models onload three.js分组 collada 模型 onload three.js
【发布时间】:2014-12-09 11:38:42
【问题描述】:

我目前正在加载模型的一堆元素并将它们添加到一个组中。然后,我希望能够在加载后将组作为一个整体移动。

我的问题是,一旦我确保所有模型都已加载,我该如何运行代码? 我不明白如何将 .onload 函数与 colladaLoader 及其回调函数一起使用。另外,使用像我在这里的自我执行功能是一个坏主意吗?我不确定如何通过列表并加载所有模型。

我的代码如下。我曾尝试通过使用“完整”计数器来使用 hack,但它并不总是有效。谢谢!

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 个对象,则不会加载该对象。

【问题讨论】:

    标签: javascript three.js loading collada


    【解决方案1】:

    如果你把所有东西都放在里面,它应该可以工作:

    <body onload="myFunction()">
    

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 2015-05-23
      • 2012-10-06
      • 2012-08-18
      • 2012-07-30
      • 2012-06-01
      • 2023-03-26
      • 2016-01-03
      • 2015-05-22
      相关资源
      最近更新 更多