能否检测屏幕旋转?我正在Mac上开发触摸屏驱动程序,因此想知道屏幕是否旋转。
能否检测屏幕旋转?我正在Mac上开发触摸屏驱动程序,因此想知道屏幕是否旋转。
MacBooks(以及Thinkpads)具有用于检测突然运动(即掉落)以防止硬盘头碰撞的加速度计。 加速度计数据通过WebKit API公开。
仅通过私有的Apple-only接口公开了加速度计数据的本机API,但Amit Singh已经发布了他的文档 sudden motion sensor API here。
请注意,他已经发布了一个免费程序SMSRotateD,可以像翻转设备一样旋转MacBook屏幕。 还有一个很酷的示例,其中有一个“陀螺仪”窗口,当您随机倾斜设备时,它将始终保持顶部。
<html>
<head>
<style>
.angle { height: 100px; }
#alpha { background-color: red; }
#beta { background-color: green; }
#gamma { background-color: blue; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
var set_bar = function( id, value ) {
var max_width = $(window).width();
$( id ).width( value * max_width );
}
var normalize_angle = function( deg ) {
var x = ( (deg + 180) / 360 ) % 1.0;
return (x < 0) ? (x + 1.0) : x;
}
window.addEventListener("deviceorientation", function(event) {
set_bar( "#alpha", normalize_angle(event.alpha));
set_bar( "#beta", normalize_angle(event.beta + 180));
set_bar( "#gamma", normalize_angle(event.gamma));
}, true);
</script>
</head>
<body>
<div class="angle" id="alpha"> </div>
<div class="angle" id="beta"> </div>
<div class="angle" id="gamma"> </div>
</body>
</html>