无法使用OrbitControls选择文本?

时间:2014-02-12 03:30:25

标签: javascript css three.js textselection

我正在使用OrbitControls.js制作一个Three.js项目,但我意识到我无法使用OrbitControls选择(突出显示)任何文本。

此处示例链接:http://threejs.org/examples/#misc_controls_orbit (尝试在示例的顶部选择文本“轨道控制示例”,我们不能这样做)

那么,如何使用OrbitControl选择(突出显示)文本?

(或者我每次想要复制文本时都必须禁用控制权?)

感谢。

2 个答案:

答案 0 :(得分:12)

默认情况下,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后,将renderer.domElement添加为构造函数THREE.OrbitControls的第二个参数。现在您可以选择页面上的文字。

答案 1 :(得分:0)

创建输入:

identidad.addEventListener( 'click', function ( event ) {
    $(this).focus();
});

通过将焦点放在此元素上来扩展click事件:

newFileBytes = [123041, 3, 255, 0, 100] 
newFile = open("f.bin", "wb") 
for byte in newFileBytes:
newFile.write(byte.to_bytes(1, byteorder='big')) 
newFile.close()