javascript - 使用 Three.js 加载纹理的 onProgress

标签 javascript three.js

您好,我在为场景加载纹理时生成加载消息时遇到了一些问题。 onProgress console.log 消息仅在纹理完全下载时触发​​,而不是在下载期间触发。

manager = new THREE.LoadingManager();

manager.onProgress = function () {
    console.log('loading');
};
manager.onLoad = function () {
    console.log('loaded');
};
manager.onError = function () {
    console.log('there has been an error');
};

var textureLoader = new THREE.TextureLoader( manager );
var planetTexture = textureLoader.load('/assets/images/planet/{{page.planet}}/{{page.planet}}.jpg');

我浏览了这些示例,但无法弄清楚他们在这个示例中是如何做到的 obj loader

最佳答案

onLoad 回调将为加载程序管理器中的每个项目调用一次。因此,如果您加载一个纹理,它将调用一次。你可以在 this fiddle 中看到这个.

要使用回调,您可以在调用 load 方法时将其作为第二个参数传递:

loader.load(
    url,
    onLoad
);

这意味着您无法看到单个图像的进度,而只能在使用同一个加载器管理器加载多个纹理时监控进度。

关于javascript - 使用 Three.js 加载纹理的 onProgress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35911834/

相关文章:

javascript - 在 javascript 中重写事件监听器

javascript - 捕获常量之间的所有内容

javascript - 以非阻塞调用 JavaScript 的方式调用 API

javascript - 选定状态不保留新选定的选项

three.js - BufferAttribute 中的内存使用情况

javascript - 为什么多次调用动画函数会导致三个js中跳过动画?

javascript - 如何在javascript中传递 session 变量

javascript - Three.js/Physij 中物体的吸引力/排斥力

javascript - Three.js 为什么使用 for 循环而不是 while

javascript - 测量 3d 模型的距离?