Three.js में, अगर मैं इस (सरलीकृत उदाहरण) की तरह एक से अधिक ऑब्जेक्ट को लोड करने JSONLoader करने के लिए कई कॉल:Three.js JSONLoader कॉलबैक
function init() {
var loader = new THREE.JSONLoader();
loader.load("mesh1.js", createScene);
loader.load("mesh2.js", createScene);
}
function createScene(geometry) {
if (geometry.filename == "mesh1.js") {
mesh1 = new THREE.Mesh(geometry, material);
scene.add(mesh1);
} else if (geometry.filename == "mesh2.js") {
mesh2 = new THREE.Mesh(geometry, material);
scene.add(mesh2);
}
}
मैं निर्धारित कर सकते हैं कैसे जो जाल कॉलबैक पर लौटा दिया गया है , खासकर जब वे अक्सर आदेश से बाहर आते हैं?
मैं एक सामान्य जेबिक कॉलबैक फ़ंक्शन के साथ कई लौटे मैश को संभालने का प्रयास कर रहा हूं। क्या लौटा ज्यामिति में कुछ संपत्ति है जो मूल फ़ाइल नाम को इंगित करती है जिसका मैं परीक्षण कर सकता हूं?
या शायद एक और शानदार तरीका है? शायद प्रत्येक कॉल के लिए एक नया THREE.JSONLoader ऑब्जेक्ट बनाना कॉलबैक फ़ंक्शन निर्धारित करेगा कि कौन सा जाल आया है?
मैं किसी भी मदद/विचारों की सराहना करता हूं! धन्यवाद!
शानदार ... मैं यह काम करने में सक्षम था। मैं कभी भी एक समारोह में एक समारोह वापस करने के लिए सोचा नहीं होगा। मैं वास्तव में यहां क्या हो रहा है पर वास्तव में उत्सुक हूं ... क्या आप कृपया कुछ दस्तावेज की दिशा में कैसे काम करते हैं या मुझे इंगित करते हैं, इस बारे में थोड़ा सा समझा सकते हैं? – Dev
@ डेव इसे एक [बंद] कहा जाता है (https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Closures)। जब 'meshloader ("mesh1.js") को तर्क के रूप में पारित किया जाता है, तो इसे सीधे निष्पादित किया जाता है (कोष्ठक की उपस्थिति के कारण)। निष्पादित होने पर, यह एक और कार्य देता है। तो यह ठीक है जैसे आपने अज्ञात फ़ंक्शन 'फ़ंक्शन (ज्यामिति) {...} 'को एक तर्क के रूप में पारित किया है, सिवाय इसके कि यह अज्ञात फ़ंक्शन किसी संदर्भ में कॉलबैक के रूप में निष्पादित किया जाएगा जहां चर' फ़ाइल नाम 'परिभाषित किया गया है और इसमें मान '" mesh1.js "'। – Pioul