THREE.js使用Promises添加纹理

时间:2017-01-19 23:53:15

标签: javascript three.js textures

我正在尝试使用promises在THREE.JS中加载纹理,但我不知道该怎么做。我已经看到它们是如何工作的,但有什么例子吗? 我正在尝试在立方体网格中加载图片(img.png)。

我不想使用JSON。

2 个答案:

答案 0 :(得分:2)

来自THREE.js的 THREE.ImageUtils.loadTexture 的源代码:

innerHTML

所以你可以将它包装在一个返回Promise的自定义函数中(这是ES6语法):

<p [innerHTML]="post.content"></p>

答案 1 :(得分:0)

我使用THREE.TextureLoader并将其包装在Promise中,如下所示:

// Wrapper function that returns a Promise that resolves to a texture instance
function loadTexture(url) {
  return new Promise(resolve => {
    new THREE.TextureLoader().load(url, resolve)
  })
}

// How to use it
loadTexture('myTexture.jpg').then(texture => {
  var geometry = new THREE.SphereBufferGeometry(500, 60, 40)
  var material = new THREE.MeshBasicMaterial({ map: texture })
  sphere = new THREE.Mesh(geometry, material)
  scene.add(sphere)
})