自动方向

启用自动方向后,当用户旋转其设备时,操作系统会重新定向整个用户界面,包括系统任务栏和应用程序。因此,舞台的高宽比将会从纵向变为横向,或者从横向变为纵向。高宽比发生更改时,舞台尺寸也会更改。

通过将 Stage 对象的 autoOrients 属性设置为 truefalse,可在运行时启用或禁用自动方向。可以在 AIR 应用程序描述符中使用 <autoOrients> 元素来设置此属性的初始值。(请注意,对于 AIR 2.6 之前的版本,autoOrients 是一个只读属性,并且只能在应用程序描述符中设置。)

如果您指定一个横向或纵向的高宽比,同时启用了自动方向,AIR 将自动方向限制为指定的高宽比。

舞台尺寸更改

舞台尺寸发生更改时,舞台内容将按照 Stage 对象的 scaleModealign 属性的指定进行缩放和重新定位。在大多数情况下,依赖由 Stage 对象的 scaleMode 设置提供的自动行为不会产生理想的效果。您必须重新布局或重新绘制图形和组件以支持多种高宽比。(提供灵活的布局逻辑也意味着您的应用程序可以更好地适应具有不同屏幕大小和高宽比的各种设备。)

下图演示了在旋转典型移动设备时,不同 scaleMode 设置的效果:

查看完全大小图形
从横向高宽比旋转到纵向高宽比

该图演示了从横向高宽比旋转到纵向高宽比时不同缩放模式发生的缩放行为。从纵向旋转到横向会引起一系列相似的效果。

方向更改事件

Stage 对象会调度两种类型的事件,您可以将其用于检测方向更改并做出响应。启用自动方向时,会调度舞台 resizeorientationChange 事件。

如果您依赖自动方向来保持垂直显示,则 resize 事件是您的最佳选择。当舞台调度 resize 事件时,您的内容会根据需要重新布局或重新绘制。仅当舞台缩放模式设置为 noScale 时,才会调度 resize 事件。

orientationChange 事件也可以用于检测方向更改。仅当自动方向启用时,才会调度 orientationChange 事件。

注: 在某些移动平台上,舞台会在调度 resize 或 orientationChange 事件之前调度一个可取消的 orientationChanging 事件。由于并非所有平台都支持该事件,因此请避免依赖该事件。