事件问题(选择并拖动对象)
我使用three.js构建项目......画布,您可以拖动对象并使用相机视图进行演示......有一个着名的示例 - “可拖拽多维数据集”,我的项目非常相似。
在我的项目中有3个主要事件:mouseup / mousedown / mousemove ...
那么一切都没问题....但现在我试图在iPhone上运行此代码,使用touchstart / touchmove / touchend更改我的事件...
移动对象功能似乎工作正常,但是当我试图通过单击他来选择对象时,它始终是被选中的对象...而不是我指向的对象....
我想这个问题是用这个函数的:
function onDocumentMouseDown( event ) {
event.preventDefault();
var vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 );
projector.unprojectVector( vector, camera );
var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
var intersects = ray.intersectObjects( objects );
if ( intersects.length > 0 ) {
SELECTED = intersects[ 0 ].object;
var intersects = ray.intersectObject( plane );
offset.copy( intersects[ 0 ].point ).subSelf( plane.position );
}
}
有人有一个想法是什么问题?
在这一行中:
var vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 );
您使用鼠标Vector2对象,但不要初始化它。
像这样的东西应该工作:
mouse.x = +(event.targetTouches[0].pageX / window.innerwidth) * 2 +-1;
mouse.y = -(event.targetTouches[0].pageY / window.innerHeight) * 2 + 1;
链接地址: http://www.djcxy.com/p/95579.html