如何在Mac上检测屏幕旋转?

3

能否检测屏幕旋转?我正在Mac上开发触摸屏驱动程序,因此想知道屏幕是否旋转。

2个回答

0

MacBooks(以及Thinkpads)具有用于检测突然运动(即掉落)以防止硬盘头碰撞的加速度计。 加速度计数据通过WebKit API公开。

仅通过私有的Apple-only接口公开了加速度计数据的本机API,但Amit Singh已经发布了他的文档 sudden motion sensor API here

请注意,他已经发布了一个免费程序SMSRotateD,可以像翻转设备一样旋转MacBook屏幕。 还有一个很酷的示例,其中有一个“陀螺仪”窗口,当您随机倾斜设备时,它将始终保持顶部。


谢谢您的回复!我已经通过CGDisplayRotation解决了这个问题。但是您的答案非常好,可以通过硬件旋转屏幕。再次感谢! - user1054994

0
希望这个HTML对你有所帮助(下面是工作版本http://jsfiddle.net/b7Efq/)。
此外,你可以查看SeisMac。他们也提供了一个可用的库。
<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">&nbsp;</div>
  <div class="angle" id="beta">&nbsp;</div>
  <div class="angle" id="gamma">&nbsp;</div>

</body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接