我已經爲iOS設計了一款專爲橫向模式設計的遊戲,它的工作原理很好,只是如果您將設備設置爲縱向模式,它會停在那裏,而界面只會填滿屏幕的中間部分。我如何強制應用程序只允許兩種風景模式,而不是停在縱向位置。AS3 - iOS強制橫向模式?
我試過所有的發佈設置。如果我取消選中AUto方向,表示應用程序不會旋轉到其他橫向模式,並且我聽說這是Apple自動拒絕,則選中橫向比率設置爲橫向,並選中自動方向。
這個程序已準備好去除了這個小缺陷。謝謝你盡你所能的幫助。
Rich
我已經爲iOS設計了一款專爲橫向模式設計的遊戲,它的工作原理很好,只是如果您將設備設置爲縱向模式,它會停在那裏,而界面只會填滿屏幕的中間部分。我如何強制應用程序只允許兩種風景模式,而不是停在縱向位置。AS3 - iOS強制橫向模式?
我試過所有的發佈設置。如果我取消選中AUto方向,表示應用程序不會旋轉到其他橫向模式,並且我聽說這是Apple自動拒絕,則選中橫向比率設置爲橫向,並選中自動方向。
這個程序已準備好去除了這個小缺陷。謝謝你盡你所能的幫助。
Rich
我在幾天前的Adobe論壇上找到了答案。
將長寬比設置爲自動。
將Auto Orientation設置爲允許。
然後使用此代碼對你的主剪輯:
var startOrientation:String = stage.orientation;
if (startOrientation == StageOrientation.DEFAULT || startOrientation == StageOrientation.UPSIDE_DOWN)
{
stage.setOrientation(StageOrientation.ROTATED_RIGHT);
}
else
{
stage.setOrientation(startOrientation);
}
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChangeListener);
function orientationChangeListener(e:StageOrientationEvent)
{
if (e.afterOrientation == StageOrientation.DEFAULT || e.afterOrientation == StageOrientation.UPSIDE_DOWN)
{
e.preventDefault();
}
}
工作得很好,我..
另外,雖然類似,這樣做,這是對的aspectRatio設置爲橫向應用程序描述符和autoOrients爲false。然後在應用程序加載並偵聽orientationChanging事件後啓用autoOrients。在Flash Builder 4.6,可以這樣做如下:
描述:
<aspectRatio>landscape</aspectRatio>
<autoOrients>false</autoOrients>
施藥代碼:
private function applicationCompleteHandler():void {
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, stageOrientationChangingHandler);
stage.autoOrients = true;
}
private function stageOrientationChangingHandler(event:StageOrientationEvent):void {
if (event.afterOrientation == StageOrientation.DEFAULT || event.afterOrientation == StageOrientation.UPSIDE_DOWN) {
event.preventDefault();
}
}
看起來你也必須確保該應用程序有明確的尺寸;否則,即使通過階段不重新調整方向,視圖仍可能調整大小。
答案上面並沒有爲我工作,因爲iOS上的preventDefault不再起作用。
對於任何一個還沒有好運的人......這就是我所做的。
我想:要
的Ipad &所有Android平板設備能夠縱向或橫向和自動旋轉在任何方向
iPhone手機,音樂播放器,&所有小屏幕設備被迫景觀(或也許在你的情況下你想要強制肖像)。
I Did:
IN my -app。XML:
<aspectRatio>any</aspectRatio>
<autoOrients>true</autoOrients>
在ActionScript:
var screenDPI:Number = Capabilities.screenDPI;
var resolutionX:Number = Capabilities.screenResolutionX;
var resolutionY:Number = Capabilities.screenResolutionY;
var numDiagonalDistance:Number = Math.round(Math.sqrt((resolutionX*resolutionX)+(resolutionY*resolutionY)));
var numDiagonalInches:Number = numDiagonalDistance/screenDPI;
if(numDiagonalInches<6){
MainData.SMALL_DEVICE=true;
}else{
MainData.SMALL_DEVICE=false;
}
if(MainData.SMALL_DEVICE){
this.stage.setAspectRatio(StageAspectRatio.LANDSCAPE);
}
雖然我想你可以很容易地把StageAspectRatio.PORTRAIT甚至使用反向邏輯來只什麼邏輯臺iPad。祝你好運!
編輯:我實際上編輯這個,因爲即使這種方法仍然有問題。你會得到風景,但它並不總是面向你如何持有該設備的景觀...
再次編輯(2-27-2014):原來,如果我包括-swf-version 23(現在與AIR 4.0)這個問題終於解決了。
我錯過了你要做的和蘋果拒絕的區別......你想離開自動旋轉,但只讓應用程序旋轉到風景方向,蘋果拒絕不支持所有方向,如果它對於應用程序在所有狀態下運行有意義。 – Aaron
蘋果公司並不要求iPad應用程序允許橫向和縱向,他們只需要橫向或兩個肖像的工作。 Flash內置的ipa允許我的風景應用停止在肖像位置並縮小內容以適應。下面的代碼解決了這個問題。 – Rich