2014-02-12 97 views
3

我正在使用OrbitControls.js製作Three.js項目,但我意識到我無法使用OrbitControls選擇(突出顯示)任何文本。無法使用OrbitControls選擇文本?

下面的例子鏈接:http://threejs.org/examples/#misc_controls_orbit (儘量選擇文本「軌道控制示例」例如頂部,我們不能這樣做)

那麼,如何選擇與OrbitControl(高亮)文本?

(或我必須禁用控制每次我要複製的文字?)

感謝。

+0

目前還不清楚你在問什麼。你想要選擇什麼文字? –

+0

嗨,我編輯過,我希望用戶可以選擇並複製我的項目中的任何文本 –

+0

您的意思是html文本或任何html文本,或者你在說什麼? 3D場景中的文本幾何? – GuyGood

回答

5

默認情況下,OrbitControls偵聽document上的鼠標事件,這就是爲什麼您不能在相同頁面中使用鼠標以用於其他目的(如選擇文本或打開上下文菜單)的原因。您可以通過指定DOM節點作爲構造函數THREE.OrbitControls的第二個參數來更改此行爲。然後OrbitControls監聽此DOM節點上的鼠標事件,而不是整個document

如果你有一個像

var renderer = …; 
container.appendChild(renderer.domElement); 
… 
var controls = new THREE.OrbitControls(camera); 

的代碼,然後用

var controls = new THREE.OrbitControls(camera, renderer.domElement); 

替換最後一行在the example you mentioned的情況下,你可以移動的controls初始化:

controls = new THREE.OrbitControls(camera); 
controls.addEventListener('change', render); 

初始化後renderer,和一個dd renderer.domElement作爲構造函數THREE.OrbitControls的第二個參數。現在您可以選擇頁面上的文字。

+2

我愛你!爲我的一天做了這麼多 – loldrup