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

时间:2011-11-19 05:49:59

标签: macos cocoa rotation screen orientation

是否可以检测屏幕旋转?我正在使用Mac上的触摸屏驱动程序,所以我想知道屏幕是否旋转。

2 个答案:

答案 0 :(得分:0)

MacBooks(和Thinkpad)有一个加速度计,用于检测突然运动(即被丢弃)以防止HD头部崩溃。加速度计数据通过webkit API公开。

加速度计数据的原生API仅通过私有的Apple接口公开,但Amit Singh发布了他的突发运动传感器API here的文档。

请注意,他已经发布了一个免费程序,可以执行您正在尝试执行的操作,称为SMSRotateD。当您翻转设备时,它将旋转MacBook屏幕。还有一个很酷的样本,有一个“陀螺”窗口,当你随机倾斜你的设备时它会保持充值。

答案 1 :(得分: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>