BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

LoadingManager.itemEnd()

该方法作为LoadingManager在载入过程中的一个回调函数之一,用于标记一个载入对象的载入完成。

语法

LoadingManager.itemEnd(url: string)

参数

  • url:表示载入对象的URL地址,它是一个字符串。

返回值

该方法没有返回值。

描述

LoadingManager是three.js中的一个用于处理载入过程的对象,它提供了一个便捷的方式来监控三维场景模型中以及涉及到的其他资源(例如纹理、音频、视频等)的载入过程。在载入过程中,经常需要将已经成功载入的对象和出现错误的对象进行分别处理。这时,itemEnd()就可以发挥作用。

调用itemEnd()可以视为在给定的url标记完成的载入对象。如果一个已经标记完毕的载入对象,它处于等待的其他载入对象载入完成状态,那么LoadingManager就会执行其回调函数。当所有的载入对象都标记完成时,LoadingManager将执行其“全部完成”的回调函数。

示例

在以下示例中,我们首先定义了一个LoadingManager对象,并设置其在载入过程中出现错误时的回调函数onError()。接着,我们使用JSONLoader()加载一个JSON格式的场景对象,并利用LoadingManageritemEnd()方法对其进行标记。最后,在所有对象都完成载入后,LoadingManager的全部完成回调函数onLoad()将被执行。

var manager = new THREE.LoadingManager();

manager.onError = function(url) {
    console.log('There was an error loading ' + url);
};

var loader = new THREE.JSONLoader(manager);

loader.load('models/scene.json', function(geometry, materials) {
    var mesh = new THREE.Mesh(geometry, materials);
    scene.add(mesh);

    manager.itemEnd('models/scene.json');
});

manager.onLoad = function() {
    console.log('All resources loaded');
};

参考