Сенсорные события и пересечения с crosswalk / three.js на устройстве Android 4.0.4
У меня есть приложение на основе WebGL_Sample, которое работает корректно на всех эмуляторах XDK (я не использую XDK, просто тестирую EMU), когда пытаюсь дотронуться до куба или пересечь его с "raycaster.intersectObjects" Three.js.
Проблема в том, что, если я снимаю его на реальном LGP920, работающем с ICS, то события скользящего касания работают (как для скользящего куба образца), но щелчок касанием не работает, тогда как, опять же, на EMU все работает нормально...
Любая подсказка о том, что происходит?
вот что я использую (массив "объекты" содержит только один элемент куба):
var vector = new THREE.Vector3( ( e.clientX / window.innerWidth ) * 2 - 1, - ( e.clientY / window.innerHeight ) * 2 + 1, 0.999 );
projector.unprojectVector( vector, camera );
var raycaster = new THREE.Raycaster( camera.position, vector.sub( camera.position ).normalize() );
var intersects = raycaster.intersectObjects( objects );
if ( intersects.length > 0 ) {
intersects[ 0 ].object.material.color.setHex( Math.random() * 0xffffff );
}
Спасибо!
1 ответ
Хорошо, понял, в эмуляторах XDK приложение реагировало при наведении указателя мыши на поверхность целевого куба, но не на палец на устройстве.
Я должен был использовать с e.touches[0].pageX и e.touches[0].pageY (вместо e.clientX и e.clientY) для устройства.