设备事件

1. orientationchange 事件
苹果公司为移动 Safari 中添加了 orientationchange 事件,以便开发人员能够确定用户何时将设
备由横向查看模式切换为纵向查看模式。移动 Safari 的 window.orientation 属性中可能包含 3 个值:
0 表示肖像模式, 90 表示向左旋转的横向模式(“主屏幕”按钮在右侧), -90 表示向右旋转的横向模
式(“主屏幕”按钮在左侧)。相关文档中还提到一个值,即 180 表示 iPhone 头朝下;但这种模式至今
尚未得到支持。图 13-10 展示了 window.orientation 的每个值的含义。


图 13-10
只要用户改变了设备的查看模式,就会触发 orientationchange 事件。此时的 event 对象不包
含任何有价值的信息,因为唯一相关的信息可以通过 window.orientation 访问到。下面是使用这个
事件的典型示例。
EventUtil.addHandler(window, "load", function(event){
var div = document.getElementById("myDiv");
div.innerHTML = "Current orientation is " + window.orientation;

EventUtil.addHandler(window, "orientationchange", function(event){
div.innerHTML = "Current orientation is " + window.orientation;
});
});
OrientationChangeEventExample01.htm
在这个例子中,当触发 load 事件时会显示最初的方向信息。然后,添加了处理 orientationchange
事件的处理程序。只要发生这个事件,就会有表示新方向的信息更新页面中的消息。
所有 iOS 设备都支持 orientationchange 事件和 window.orientation 属性。

3. deviceorientation 事件
本质上,DeviceOrientation Event 规范定义的 deviceorientation 事件与 MozOrientation 事件类
似。它也是在加速计检测到设备方向变化时在 window 对象上触发,而且具有与 MozOrientation 事件
相同的支持限制。不过, deviceorientation 事件的意图是告诉开发人员设备在空间中朝向哪儿,而
不是如何移动。

13.4 事件类型 397

设备在三维空间中是靠 x、y 和 z 轴来定位的。当设备静止放在水平表面上时,这三个值都是 0。x
轴方向是从左往右,y 轴方向是从下往上,z 轴方向是从后往前(参见图 13-11)。
图 13-11
触发 deviceorientation 事件时,事件对象中包含着每个轴相对于设备静止状态下发生变化的信
息。事件对象包含以下 5 个属性。
 alpha :在围绕 z轴旋转时(即左右旋转时),y 轴的度数差;是一个介于 0 到 360 之间的浮点数。
 beta :在围绕 x轴旋转时(即前后旋转时),z轴的度数差;是一个介于180到 180之间的浮点数。
 gamma :在围绕 y轴旋转时(即扭转设备时),z轴的度数差;是一个介于90到 90之间的浮点数。
 absolute :布尔值,表示设备是否返回一个绝对值。
 compassCalibrated :布尔值,表示设备的指南针是否校准过。

posted @ 2017-11-06 16:38  ~浪里个浪  阅读(144)  评论(0编辑  收藏  举报