事件问题(选择并拖动对象)

我使用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

上一篇: events issue( select&drag object )

下一篇: Simulate scroll event using Javascript