以http://threejs.org/examples/#webgl_loader_scene爲例,我試圖添加從Blender導出的js文件。該文件可以正確加載JSONLoader,但現在我希望它與其他文件以及進度條結合使用。Three.js - 向SceneLoader添加JSON文件類型
$("progress").style.display = "block";
THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader());
var loader = new THREE.SceneLoader();
loader.addGeometryHandler("binary", THREE.BinaryLoader);
loader.addGeometryHandler("ctm", THREE.CTMLoader);
loader.addGeometryHandler("vtk", THREE.VTKLoader);
loader.addGeometryHandler("stl", THREE.STLLoader);
loader.addHierarchyHandler("obj", THREE.OBJLoader);
loader.addHierarchyHandler("dae", THREE.ColladaLoader);
loader.addHierarchyHandler("utf8", THREE.UTF8Loader);
loader.addHierarchyHandler("json", THREE.JSONLoader);
loader.callbackProgress = callbackProgress;
loader.load("scenes/test_scene.js", callbackFinished);
我添加了json HierarchyHandler幷包含了JSONLoader.js文件。
loader.addHierarchyHandler("json", THREE.JSONLoader);
然後我將此添加到其他dae和obj文件所在的「objects」下的test_scene.js。
"tree" : {
"type": "json",
"url" : "models/json/tree.js",
"position" : [ -43, -10, 27 ],
"rotation" : [ -1.57, 0, 0 ],
"scale" : [ 5, 5, 5 ],
"visible" : true
},
控制檯記錄它讀取爲樹引用的紋理文件,但從未結束 - 進度條保持在99%。
但是我收到的錯誤是:
Uncaught TypeError: Cannot read property 'fromArray' of undefined SceneLoader.js:554
有誰知道爲什麼這可能是發生還是什麼我做錯了嗎? three.js示例加載除json之外的所有類型的文件。有沒有這個理由,還是我錯過了什麼?我讀過SceneLoader將被折舊,我應該考慮使用ObjectLoader,但沒有如何做的例子。
謝謝!