2012-01-11 62 views
3

我在AIR手機中製作了一款應用程序,我需要始終處於橫向模式。在大多數設備上這是可以的,但在某些設備上(例如摩托羅拉XOOM),該應用會在橫向上啓動。至少在Flash Builder 4.5附帶的模擬器中內置。我不知道這是模擬器的問題,還是XOOM的方向與大多數設備不同。 無論如何,我想確保設備始終處於橫向模式。這可以很容易地檢查:AIR手機始終處於風景狀態

if(stage.stageWidth<stage.stageHeight){ 
//rotate screen; 
} 

我需要把如果陳述,以確保它是正確的導向?

謝謝。

回答

3

在* -app.xml文件,您可以定義應用程序應該如何採取行動:

<aspectRatio>landscape</aspectRatio> 
<autoOrients>true</autoOrients> 
2

即使的aspectRatio設置爲橫向中將autoOrients並設置爲application.xml中虛假的,有時一個設備的方向設置不正確在移動空氣3.1應用程序的第一幀期間,stage.stageWidth將返回兩個維度中較小的一個。幾幀後,它會翻轉到正確的方向。這可能是你目睹的。

所以,如果你需要知道的山水舞臺尺寸,當你的應用程序第一次加載時,使用:

var width :Number = Math.max(stage.stageWidth, stage.stageHeight); 
var height :Number = Math.min(stage.stageWidth, stage.stageHeight); 

你不應該需要手動旋轉你的整個應用程序,但在這裏是如何:

this.rotationX = 90 
2

如果您提交給蘋果商店,您應該小心鎖定應用程序中的旋轉角度,否則如果應用程序無法調整到正在倒置的設備,則可能會被拒絕。許多設備在「默認」方向上有所不同,但以橫向的起始縱橫比設置應用程序描述符應該可行。在AIR 3.3中有一個變化,因此設置stage.aspectRatio將保持預期的高寬比,而不管設備的默認方向如何,或設備是否顛倒。

您需要設置:

<aspectRatio>landscape</aspectRatio> 
<autoOrients>true</autoOrients> 

在您的應用程序描述符。您還需要在您的編譯器選項中設置

-swf-version=16 

。使用這些設置和AIR 3.3,無論設備是旋轉到設備的「頂部」位於左側還是右側,該應用都會保持橫向縱橫比。縱向比例設置爲縱向會使設備保持縱向縱橫比,即使設備顛倒。

相關問題