3

Android デバイス上の AIR アプリで利用できる実際の領域を特定する方法はありますか?

たとえば、Kindle Fire ではCapabilities.screenResolutionYは 600 を返しますが、実際にはツールバーのために約 580 です。プログラムでこの値に到達することは可能ですか?

ありがとう。

4

3 に答える 3

2

stage.stageHeighthttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#stageHeightを使用します

于 2012-07-31T23:26:02.770 に答える
0

この質問は相対的なものです。ハードウェアの面では、600ピクセルが利用可能であるため、結果が期待できます。Kindle Fire用にプログラミングしている場合、20ピクセルのツールバーを予測して、必要なときにいつでも結果から20を引くことができませんか?これは、プロジェクトがKindleFireに固有であるという前提に基づいています。

于 2012-07-31T19:02:06.767 に答える
0

その質問は少し限定的だと思います。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任意のプラットフォームで使用可能なスペースの現在の最大サイズです。

コードの改善を望みます。コードの最適化は行わないでください。寸法を決定するためのより良い方法を探しています。よく知っている場合は、コメントを残してください。

于 2012-08-01T03:11:24.857 に答える