私はちょうどローダーを把握するために、ファイルの文字列を使用します -
ので、あなたのようないくつかの機能を持っている:
loadXXX
は、ファイルの種類ごとに複数回定義されて
loadArbitraryModel("path/to/file.json");
loadArbitraryModel = function(path) {
var strings = path.split('.'); //now the path is ["path/to/file", "json"]
var types = ['json', 'obj', 'stl', 'babylon', 'collada'];
var result = -1;
types.forEach(function (item,index) {
if (strings.length > 1) {
if (strings[1] == item){ //strings[1] would be anything after the '.'
result = index;
}
}
});
switch (result){
case -1:
alert("file format not supported/ improperly named");
case 0:
loadJSON(path);
break;
case 1:
loadOBJ(path);
break;
case 3:
loadSTL(path);
break;
//ETC etc etc
}
}
。または、load(loader,path)
タイプの関数を使用できます。使用するローダーを渡します。ケースjson - >load(new THREE.ObjectLoader(),path)
です。私はすべてのローダーが同じように十分に働いてfunction load(__, __)
の腸がすべての場合で同じになることができると思います。これは、あなたが複数の機能にまたがることを避けるのに役立ちます。
これは、人を混乱させ、間違った拡張機能を与えている人たちを説明していませんが、loadXXX()関数では、ローダーが警告をスローするようにonError関数を定義できますそれを解析しないでください。あなたが見ることができるように
ありがとうございます!その他のコードでは、コードは_index.html_と_/js/Loader.js_です – Pouchopa