Thdkによって上記で提供されたloadTexture関数は、基本的に、Three.jsに含まれているImageUtilsソースで提供されているものと同じ関数です。
THREE.ImageUtils.loadTexture関数のソースを見ると、いくつかの小さな変更を除いて、上記のものと同じであることがわかります。テクスチャマッピングとコールバック用の追加パラメータもあります。コールバックは、Imageオブジェクトのonloadイベント内に配置されます。これは、これを利用して、テクスチャが作成されるまでオブジェクトの作成を延期し、アニメートする前にすべてのオブジェクトがロードされていることを確認できることを意味します。
loadTexture: function ( path, mapping, callback ) {
var image = new Image(), texture = new THREE.Texture( image, mapping );
image.onload = function () { texture.needsUpdate = true; if ( callback ) callback( this ); };
image.crossOrigin = this.crossOrigin;
image.src = path;
return texture;
},
コールバックを使用すると、次の方法でコールバックを利用して、目的を達成できます。
THREE.ImageUtils.loadTexture(path1, null, function () {
THREE.ImageUtils.loadTexture(path2, null, function () {
THREE.ImageUtils.loadTexture(path3, null, function () { renderingEnabled = true; }) }) });
次に、アニメーションロジックへの呼び出しとレンダリング呼び出しをで囲みますif(renderingEnabled)
。または、すべてを適切に設定した場合は、最後のコールバックからアニメーションループを呼び出すこともできます。