2

我正在使用 BinaryLoader(最大 6MB)加载相当大的 3d 模型,我想显示进度信息。

使用 loader.showStatus 已经是第一步(现在我的应用程序在模型加载时显示“正在加载”),但我想显示模型的已加载百分比。

阅读 BinaryLoader 的代码后,我发现了“showProgress”标志,但如果将其设置为 true,则会出现多个错误,如下所示:

未捕获的错误:InvalidStateError:DOM 异常 11 xhr.onreadystatechange

在 BinaryLoader.js:99 行,对应于:

callbackProgress({总:长度,加载:xhr.responseText.length});

我也尝试配置 loader.onLoadProgress,但我无法弄清楚如何去做......

提前致谢!

4

1 回答 1

2

3年后我遇到了和你一样的问题。这是我的解决方案:

var onLoadComplete= function (geometry) {
    model = new THREE.Mesh(geometry, material);
    scene.add(model);
    //etc
};

var onLoadProgress = function (e) {
    var percentage = Math.round((e.loaded / e.total * 100));
    jQuery('#some-loader-div').html('Loading ' + percentage + '%')
};

loader.load(file_url, onLoadComplete, onLoadProgress);

参考:http ://definitelytyped.org/docs/threejs--three/classes/three.jsonloader.html#onloadprogress

希望这对某人有帮助!

于 2016-12-14T17:31:13.757 回答