【发布时间】:2016-10-17 06:48:39
【问题描述】:
我编写了我的第一个移动 AIR 应用程序。在我的 iPad 上,布局是一个令人沮丧的失败。它在 Flash Builder 模拟器中看起来很完美。
我已将应用程序设置为以纵向模式运行,没有自动定向。它从 160 DPI 开始并按比例放大。应用程序完成后,我得到舞台的宽度和高度,然后使用这些数字计算我的所有按钮的布局和我的数据网格的列宽。当我在 iPad 上加载应用程序时,所有按钮都分散得太远,有几个按钮跑出了屏幕。数据网格都应该适合屏幕,但其中四列从屏幕上跑了出来。
它几乎就像是在横向模式下而不是在纵向模式下计算屏幕宽度一样。所以我有两个问题:
1) 如果您以纵向布局应用程序,舞台的宽度是纵向还是横向的宽度?
2) 我对如何在具有不同屏幕密度的移动设备上布置所有内容感到困惑。获取应用程序的宽度和高度,然后以像素为单位设置距离和间距,还是使用百分比更好?
感谢您的任何见解。这令人失望。
编辑: 应用程序完成后,我调度一个自定义事件,让我的其余组件知道应用程序已加载,以便它们可以获取应用程序的宽度和高度并适当地布置自己。在我的主应用程序中,我有以下代码:
protected function appCreationCompleteHandler(event:FlexEvent):void {
// Dispatch an event to the rest of the application that the application is complete so that I can calculate all of my layout distances
var e:Event = new Event("appComplete", true);
dispatchEvent(e);
appWidth = stage.stageWidth;
appHeight = stage.stageHeight;
}
在我的应用程序描述符文件中,我设置了以下值:
<aspectRatio>portrait</aspectRatio>
<autoOrients>false</autoOrients>
<fullScreen>true</fullScreen>
<visible>true</visible>
<softKeyboardBehavior>pan</softKeyboardBehavior>
我觉得它必须在我的描述符文件中,因为它在模拟器中完美布局,而不是在设备上。设备上的高度值似乎是正确的,但宽度布局却相差甚远。
【问题讨论】:
标签: ipad mobile air height width