【发布时间】:2015-09-22 09:36:14
【问题描述】:
我正在为零售亭构建一个 AIR->android 应用程序。我们将隐藏“状态栏”,因此应用程序是全屏的,并且没有软按钮栏(它也将使用 3rd 方应用程序锁定到信息亭模式)。
当我在隐藏状态栏的设备上发布和运行我的应用程序时,flash 阶段颜色在原始状态栏所在的位置可见。该空间应填充应用程序内容(全屏图像等),但最初包含栏的 68px 空间只是纯白色(或舞台设置的任何背景颜色)
经过大量试验和错误后,我将其归结为我在应用程序描述符 xml 中将 renderMode 设置为 direct 的事实。如果我删除它,应用内容会填满屏幕,但显然我无法访问 GPU 加速渲染系统。
我假设这与 AIR 向设备硬件询问其分辨率有关,即使实际像素数为 1920x1080,它也会返回 1920x1032。所以在引擎盖下 AIR 只是设置了一个 1920x1032 的可渲染窗口(在 renderMode>direct 时)。
有没有人知道在 renderMode>direct 中启用真正全屏的方法?
【问题讨论】:
-
与渲染模式无关,许多 Android 设备返回不可靠的分辨率值,因此不可能指望 AIR 100% 的时间为您提供正确的分辨率值。您必须使用将使用 Metrics java 类正确返回这些值的 ANE。
-
感谢 BotMaster,这似乎也是我在 Starling 论坛上遇到的解决方案,所以我想它是正确的。我还没有机会实现它,但有人将我指向这个 ANE github.com/mesmotronic/air-fullscreen-ane,它旨在在 android 上启用“沉浸式全屏模式”并返回正确的分辨率。无论它是否有效,我都会在这里发布。
标签: android actionscript-3 flash air starling-framework