重力加速度和摇一摇事件

来源:互联网 发布:清华java培训 编辑:程序博客网 时间:2024/05/15 23:51

devicemotion是移动端的设备运动事件,是window的事件
event.accelerationIncludingGravity就是设备运动的重力加速度

window.addEventListener("devicemotion",function(event){    var acceleration=event.accelerationIncludingGravity;    var x=acceleration.x; //x方向的加速度    var y=acceleration.y; //y方向的加速度    var z=acceleration.z; //z方向的加速度},false);

需要注意的是,x,y,z在安卓和iOS上的值是相反的
可以利用重力加速度做一下体感小游戏
下面是利用重力加速度封装的摇一摇事件

function onshake(fn){    var lastX=lastY=lastZ=0;    var speed=50;    window.addEventListener("devicemotion",fnshake,false);    function fnshake(e){        var a=e.accelerationIncludingGravity;        var x=a.x;        var y=a.y;        var z=a.z;        var dis=Math.abs(x-lastX)+Math.abs(y-lastY)+Math.abs(z-lastZ);        if(dis>speed){            fn&&fn();            //当晃动幅度的值大于speed的时候触发        };        lastX=x;        lastY=y;        lastZ=z;    };};

调用方法

onshake(function(){    alert("摇一摇");});
0 0
原创粉丝点击