2013-04-05 4 views
5

के लिए उपयोग किए गए कैनवास तत्व की तीन.जेएस डोम आईडी मैं तीन.जेएस द्वारा स्वचालित रूप से बनाए गए कैनवास तत्व की आईडी प्राप्त करना चाहता हूं।वेबल रेंडरर

वैकल्पिक रूप से, मैं निर्माण के दौरान एक पूर्ववर्ती कैनवास तत्व आईडी के साथ पारित होने की क्षमता के साथ समान रूप से खुश (शायद अधिक) होगा।

शोध करने के बाद, मैं इस कोशिश की:

renderer = new THREE.WebGLRenderer({ canvas: my_canvas }); 

सफलता के बिना (यह एक बहुत पुराने निर्माण से है, लेकिन यह काम करेगा उम्मीद कर रहा था)। शायद 2 साल पहले से कुछ पैरामीटर वाक्यविन्यास बदल गया है?

(my_canvas, कैनवास की आईडी किया जा रहा है यह भी कोशिश की संदर्भ के साथ गुजर रहा है, कोई भाग्य)

अंत में मैंने कोशिश की:

document.getElementsByTagName('canvas'); 

जो कुछ भी नहीं लौटे ... कि एक पहेली था और प्रोवर्बियल स्ट्रॉ जिसने मुझे यहां पोस्ट करने का नेतृत्व किया।

किसी अंतर्दृष्टि की सराहना की, धन्यवाद! (अब मेरे पास वोटिंग अधिकार हैं)

+1

रेंडरर द्वारा बनाए गए कैनवास से संबंधित डीओएम तत्व प्राप्त करने के लिए 'renderer.domElement' का उपयोग करें। – Popov

+1

इसके अलावा, आप WebGLRenderer पर कैनवास पास कर सकते हैं, यहां देखें: http://mrdoob.github.com/three.js/docs/57/#Reference/Renderers/WebGLRenderer => ऐसा लगता है कि आपने जो किया है, उसके अनुसार दस्तावेज़ (और स्रोत कोड के लिए) यह – Popov

+0

काम करना चाहिए एक उत्तर pls स्वीकार करें। – BuildingJarl

उत्तर

15
var canvas = document.getElementById("canvasID"); 
renderer = new THREE.WebGLRenderer({ canvas: canvas }); 
4

यदि आप नवीनतम रिलीज (r57) में तीन.js/src/renderers/WebGLRenderer.js (फ़ाइल के बहुत ऊपर) में देखते हैं तो आप देख सकते हैं कि आप वास्तव में पास कर सकते हैं रेंडरर के लिए एक कैनवास तर्क। यदि आप एक पास नहीं करते हैं, तो आपके लिए एक बनाया गया है। आपको शायद कुछ कोड पोस्ट करने की आवश्यकता होगी जो काम नहीं करते हैं या बेहतर नहीं हैं, इसलिए हम समस्या को देख सकते हैं।

संबंधित मुद्दे