2013-04-05 85 views
5

我想獲取由three.js自動創建的canvas元素的id。或者,我會同樣感到高興(也許更多),以便在構建過程中傳遞預先存在的畫布元素ID。three.js用於webgl渲染器的canvas元素的id id

經過研究,我嘗試這樣做:

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

沒有成功(這是一個很老的身材,但希望它的工作)。也許一些參數語法自2年前發生了變化?

(my_canvas是帆布的id,還試圖沿着背景下傳球,沒有運氣)

最後我想:

document.getElementsByTagName('canvas'); 

這回沒有......這是一個益智遊戲和諺語的稻草,讓我在這裏張貼。

任何洞察讚賞,謝謝! (我現在有投票權)

+1

使用'renderer.domElement'獲取與渲染器創建的畫布相對應的DOM元素。 – Popov 2013-04-05 18:29:14

+1

此外,您可以將畫布傳遞給WebGLRenderer,請參閱此處:http://mrdoob.github.com/three.js/docs/57/#Reference/Renderers/WebGLRenderer =>它似乎是您所做的,根據該文檔(和源代碼)它應該工作 – Popov 2013-04-05 18:30:19

+0

接受答案請。 – BuildingJarl 2014-03-05 08:12:19

回答

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

如果你在three.js/src/renderers/WebGLRenderer.js(位於文件的最頂端)的最新版本(r57)中看,你可以看到你實際上可以通過渲染器的畫布參數。如果你不通過一個,那麼爲你創建一個。你可能需要發佈一些不起作用的代碼,或者更好的是一個jsfiddle,這樣我們可以看看這個問題。