如何使用showProgress标志显示BinaryLoader中的进度?

时间:2013-05-07 10:00:06

标签: three.js

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

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

读取BinaryLoader的代码我找到了'showProgress'标志,但是如果我将它设置为true,我会得到多个像这样的错误:

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

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

callbackProgress({total:length,loaded:xhr.responseText.length});

我也尝试过配置loader.onLoadProgress,但我无法弄清楚如何做到这一点......

提前感谢!

1 个答案:

答案 0 :(得分: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);

参考:https://jsfiddle.net/1y5jpcxz/

希望这有助于某人!