Como você pode ver, a rotação, aceleração e desaceleração do cubo acima param em todo o AlloyTouch para atingir.
Demo (celular)
Código
<script src="asset/three.js"></script>
<script src="../../alloy_touch.js"></script>
<script>
var camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.z = 500;
var scene = new THREE.Scene();
var texture = new THREE.TextureLoader().load( 'asset/crate.gif' );
var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 );
var material = new THREE.MeshBasicMaterial( { map: texture } );
var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
var renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
function animate() {
requestAnimationFrame( animate );
renderer.render( scene, camera );
}
animate();
new AlloyTouch({
touch: document, //touch the whole document
vertical: false, //monitor horizontal touch
target: mesh.rotation, //animate mesh.rotation's y property
property: "y",
factor: 0.08, //friction coefficient
moveFactor: 0.2 //touch move friction coefficient
})
</script>
O fator precisa continuar a depurar o melhor valor para a velocidade e o tempo do movimento inercial após o melhor efeito.
moveFactor precisa continuar a depurar o melhor valor, é deixar o mapa de distância de arrasto lateral para atingir o ângulo de rotação.
Se você não precisa de um movimento inercial. Por exemplo, o rei da glória na rotação da tarefa não é a inércia, o dedo esquerdo da tela irá parar de se mover imediatamente. Tal como:
Você só precisa definir a inércia do AlloyTouch como falsa.
Demonstração sem inércia
Código
<script src="asset/three.js"></script>
<script src="../../alloy_touch.js"></script>
<script>
...
...
...
animate();
new AlloyTouch({
touch: document,
vertical: false,
target: mesh.rotation,
property: "y",
factor: 0.08,
moveFactor: 0.2 ,
inertia: false //disable the inertia animation
})
</script>
AlloyTouch
Github :https://github.com/AlloyTeam/AlloyTouch
Qualquer dúvida, por favor me avise: https://github.com/AlloyTeam/AlloyTouch/issues