2013-04-05 21 views
5

Üç adımda otomatik olarak oluşturulan canvas öğesinin kimliğini almak istiyorum. Alternatif olarak, inşaat sırasında önceden varolan bir tuval öğesi kimliğini geçme becerisiyle aynı derecede mutlu olurdum (belki daha çok). başarılı olamadıthree.js dom etiketinin tuval değeri kullanıldı webgl renderer

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

(bu oldukça eski bir yapı olduğunu, ama o iş umuyordum):

araştırma sonra bu çalıştı. Belki 2 yıl önce bazı parametre sözdizimi değişti?

Sonunda çalıştı (my_canvas, hiçbir şans bağlamda boyunca geçen zamanda çalıştı tuvalin kimliği olma): ... hiçbir şey döndürdü

document.getElementsByTagName('canvas'); 

bir bilinmez ve Burada yayınlamamı sağlayan apaçık saman.

Herhangi bir içgörü takdir, teşekkürler! (Şu anda oy haklarına sahibim)

+1

İşleyici tarafından oluşturulan kanağa karşılık gelen DOM öğesini almak için 'renderer.domElement işlevini kullanın. – Popov

+1

Ayrıca, bir tuvali WebGLRenderer'a aktarabilirsiniz, buraya bakın: http://mrdoob.github.com/three.js/docs/57/#Reference/Renderers/WebGLRenderer => yaptığınız gibi görünüyor. doc (ve kaynak kodu) çalışmalıdır – Popov

+0

bir cevap pls kabul edin. – BuildingJarl

cevap

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

En son sürümde (r57) üç.js/src/renderers/WebGLRenderer.js dosyasında (dosyanın en üstünde) bakarsanız, gerçekten geçebildiğinizi görebilirsiniz. işleyiciye bir tuval argümanı. Birini geçmezseniz, o zaman sizin için yaratılır. Muhtemelen çalışmayan ya da daha iyi bir jSfiddle olmayan bazı kodlar göndermelisiniz, böylece problemi gözden geçirelim.

İlgili konular