有没有办法确定 Android 设备上的 AIR 应用程序可用的实际区域?
例如,在 Kindle Fire Capabilities.screenResolutionY上返回 600,而实际上是 580 左右,因为有工具栏。是否有可能以编程方式达到这个值?
谢谢。
有没有办法确定 Android 设备上的 AIR 应用程序可用的实际区域?
例如,在 Kindle Fire Capabilities.screenResolutionY上返回 600,而实际上是 580 左右,因为有工具栏。是否有可能以编程方式达到这个值?
谢谢。
使用 stage.stageHeight http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#stageHeight
这个问题是相对的。从硬件方面来看,有 600 个像素可用,因此应该可以预期结果。如果您正在为 Kindle Fire 编程,您难道不能只预测 20 像素的工具栏并在需要时从结果中减去 20 吗?这是基于您的项目特定于 Kindle Fire 的假设。
我觉得这个问题有点局限。AIR 代码可以(大部分)独立于平台,我建议在编程中允许该方面。考虑到这一点,这与我想出的通用尺寸解决方案一样接近。
static public const DEVICE_UNK:int = 0;
static public const DEVICE_WINDOWS:int = 1;
static public const DEVICE_APPLE_IPAD:int = 2;
static public const DEVICE_ANDROID:int = 3;
public var deviceType:Number;
public var _fullWidth:Number;
public var _fullHeight:Number;
deviceType = -1;
if (Capabilities.manufacturer.toLowerCase().indexOf("windows") != -1)
{
deviceType = DEVICE_WINDOWS;
}
else if (Capabilities.manufacturer.toLowerCase().indexOf("android") != -1)
{
deviceType = DEVICE_ANDROID;
}
else if (Capabilities.manufacturer.toLowerCase().indexOf("ios") != -1)
{
deviceType = DEVICE_APPLE_IPAD;
}
else
{
deviceType = DEVICE_UNK;
}
然后用于deviceType
在初始化、调整大小或其他任何过程中确定尺寸:
switch (deviceType)
{
case DEVICE_UNK:
case DEVICE_WINDOWS:
_fullWidth = stage.stageWidth;
_fullHeight = stage.stageHeight;
break;
case DEVICE_ANDROID:
case DEVICE_APPLE_IPAD:
_fullWidth = Math.max(stage.fullScreenWidth, stage.fullScreenHeight);
_fullHeight = Math.min(stage.fullScreenWidth, stage.fullScreenHeight);
break;
default:
trace("Error: invalid deviceType.");
break;
}
_fullWidth
然后_fullHeight
是任何平台上可用空间的当前最大尺寸。
我很想对代码进行任何改进。请不要进行代码优化;我正在寻找更好的方法来确定尺寸。如果您更了解,请发表评论。