Three 加载器(三)

FileLoader

使用XMLHttpRequest来加载资源的低级类,并由大多数加载器内部使用。 它也可以直接用于加载任何没有对应加载器的文件类型。

注意: 必须启用缓存 THREE.Cache.enabled = true; 这是一个全局属性,只需要设置一次,供内部使用FileLoader的所有加载器使用。 Cache 是​​一个缓存模块,用于保存通过此加载器发出的每个请求的响应,因此每个文件都会被请求一次。

var loader = new THREE.FileLoader(); 
//加载一个文本文件,并把结果输出到控制台上 
loader.load( 
  // resource URL 
  'example.txt', 
  // onLoad回调 
  function ( data ) { 
    // output the text to the console 
    console.log( data ) 
  }, 
  // onProgress回调 
  function ( xhr ) { 
    console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); 
  }, 
  // onError回调 
  function ( err ) { 
    console.error( 'An error happened' ); 
  } 
);

构造函数

FileLoader ( manager : LoadingManager )

manager — loadingManager 是加载器所使用的加载管理器。 默认为 DefaultLoadingManager.

属性

# .manager : LoadingManager

loadingManager 是加载器所使用的加载管理器,默认为 DefaultLoadingManager.

# .mimeType : String

详情 mimeType. 请参考 .setMimeType。默认为 undefined

# .path : String

将要加载的文件的基本路径。请参考 .setPath。 默认为 undefined.

# .requestHeader : object

request header 在HTTP 请求中使用。 请参考 .setRequestHeader。 默认为 undefined.

# .responseType : String

请求的响应类型。 请参考 .setResponseType. 默认为 undefined.

# .withCredentials : String

XMLHttpRequest是否使用证书。 请参考 .setWithCredentials. 默认为 undefined.

方法

# .load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : null

url — 文件的URL或者路径,也可以为 Data URI.
onLoad (可选) — 加载完成时将调用。回调参数将是加载的响应。
onProgress (可选) — 将在加载过程中进行调用。参数将是XMLHttpRequest实例, 其中包含 total 和 loaded 字节
onError (可选) — 在加载错误时被调用。

加载URL并将响应传递给onLoad函数。

# .setMimeType ( mimeType : String ) : FileLoader

设置正在加载的文件预期类型 mimeType 。请注意,在许多情况下,这将自动确定,因此默认情况下它是 undefined 。

# .setPath ( path : String ) : FileLoader

设置加载文件的基本路径或URL。当加载同一目录中的许多模型,此方法将很有用。

# .setRequestHeader ( requestHeader : object ) : FileLoader

requestHeader - key: 要设置header的名称。 value:要设置header的值。

请参考在HTTP 请求中的 request header

# .setResponseType ( responseType : String ) : FileLoader

改变响应的类型,其类型有效值如下:
text 或者空 string (默认) - 返回的数据类型为 string.
arraybuffer - 加载的数据类型到一个数组buffer中 ArrayBuffer 并进行返回。
blob - 返回的数据为 Blob
document - 使用 DOMParser 解析文件。
json - 将文件解析为 JSON.parse.

# .setWithCredentials ( value : Boolean ) : FileLoader

XMLHttpRequest是否使用cookie、授权头或TLS客户端证书等凭据。 请参考 XMLHttpRequest.withCredentials.
请注意,当您在本地或从同一域加载文件,则该方法无效。

FontLoader

使用JSON格式中加载字体的一个类。返回Font, 返回值是表示字体的Shape类型的数组。 其内部使用FileLoader来加载文件。

你可以使用facetype.js在线转换字体。

var loader = new THREE.FontLoader(); 
var font = loader.load( 
  // 资源URL 
  'fonts/helvetiker_bold.typeface.json', 
  // onLoad回调 
  function ( font ) { 
    // do something with the font 
    scene.add( font ); 
  }, 
  // onProgress回调 
  function ( xhr ) { 
    console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); 
  }, 
  // onError回调 
  function ( err ) { 
    console.log( 'An error happened' ); 
  } 
);

构造函数

FontLoader( manager : LoadingManager )

manager — 加载器所使用的loadingManager。默认值为THREE.DefaultLoadingManager.

创建一个新的FontLoader.

属性

# .manager : LoadingManager

加载器正在使用的loadingManager。默认值为DefaultLoadingManager.

# .path : String

所要加载字体的基本路径。 具体参考.setPath。 默认为undefined.

方法

# .load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : null

url — 文件的URL或者路径,也可以为 Data URI.
onLoad — 加载完成时将调用。回调参数是将要被加载的texture.
onProgress — 将在加载过程中进行调用。参数为XMLHttpRequest实例,实例包含total和loaded字节。
onError — 在加载错误时被调用。

从URL中进行加载,并将被加载的texture传递给onLoad。

# .parse ( json : Object ) : Font

json — The JSON structure to parse.

JSON格式进行解析,并返回一个Font.

# .setPath ( path : String ) : FontLoader

设置加载字体的基本路径或URL。当加载同一目录中下的许多字体时,此方法将很有用。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Three.js 是一个强大的 JavaScript 库,用于在网页上创建和显示 3D 图形。Three.js 提供了许多加载,用于加载不同类型的 3D 模型和纹理。 以下是一些常见的 Three.js 加载: 1. OBJLoader:用于加载 Wavefront OBJ 格式的模型文件。 2. FBXLoader:用于加载 Autodesk 的 FBX 格式的模型文件。 3. GLTFLoader:用于加载 glTF(GL Transmission Format)格式的模型文件,这是一种比较新的开放标准的 3D 文件格式。 4. DRACOLoader:用于加载经过 Draco 压缩的 glTF 文件,以减小文件大小并提高加载性能。 5. TextureLoader:用于加载图片纹理。 这些加载可以通过引入 Three.js 库后直接使用。例如,要使用 OBJLoader,可以按照以下步骤操作: 1. 引入 Three.js 库: ```html <script src="https://cdn.jsdelivr.net/npm/three@0.132.2/build/three.js"></script> ``` 2. 创建场景、相机和渲染等必要的 Three.js 元素。 3. 创建 OBJLoader 实例并设置所需的参数: ```javascript const loader = new THREE.OBJLoader(); ``` 4. 使用 loader 的 `load` 方法加载模型文件,并在回调函数中处理加载完成后的逻辑: ```javascript loader.load( 'path/to/model.obj', function (object) { // 模型加载完成后的处理逻辑 scene.add(object); }, function (xhr) { // 模型加载进度的回调函数 console.log((xhr.loaded / xhr.total) * 100 + '% loaded'); }, function (error) { // 模型加载失败时的处理逻辑 console.error('An error happened', error); } ); ``` 通过类似的步骤,你可以使用其他加载加载不同类型的模型或纹理文件。根据你要加载的文件类型选择相应的加载,并查阅 Three.js 文档以了解更多详细信息和用法示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值