Сенсорные события и пересечения с 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) для устройства.

Другие вопросы по тегам