2013-04-05 6 views
5

Ich möchte die ID des Canvas-Elements automatisch von three.js erstellt bekommen.three.js dom id von canvas element für webgl renderer verwendet

Alternativ wäre ich ebenso glücklich (vielleicht mehr) mit der Fähigkeit, eine bereits existierende Canvas-Element-ID während der Konstruktion weiterzugeben.

Nach der Untersuchung habe ich versucht, dies:

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

ohne Erfolg (es von einem hübschen alten Build ist, aber hatte gehofft, dass es funktionieren würde). Vielleicht hat sich eine Parametersyntax seit 2 Jahren verändert?

(my_canvas die ID der Leinwand zu sein, versuchte auch entlang Zusammenhang vorbei, kein Glück)

Schließlich habe ich versucht:

document.getElementsByTagName('canvas'); 

die nichts zurück ... das war ein Puzzler und die sprichwörtliche Strohhalme, die mich hierher gebracht haben.

Jeder Einblick geschätzt, danke! (Ich habe jetzt Stimmrecht)

+1

Verwenden Sie 'renderer.domElement', um das DOM-Element zu erhalten, das der vom Renderer erstellten Zeichenfläche entspricht. – Popov

+1

Sie können auch einen Canvas an den WebGLRenderer übergeben, siehe hier: http://mrdoob.github.com/three.js/docs/57/#Reference/Renderers/WebGLRenderer => es scheint, dass Sie das tun, was Sie getan haben das doc (und der Quellcode) sollte es funktionieren – Popov

+0

eine Antwort akzeptieren pls. – BuildingJarl

Antwort

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

Wenn Sie in der neuesten Version (R57) in three.js/src/renderers/WebGLRenderer.js (ganz oben in der Datei) schauen, können Sie sehen, dass Sie tatsächlich bestehen können ein Canvas-Argument für den Renderer. Wenn Sie keinen weitergeben, wird einer für Sie erstellt. Sie müssten wahrscheinlich etwas Code posten, der nicht funktioniert, oder besser noch ein Jsfiddle, damit wir uns das Problem ansehen können.

Verwandte Themen