2013-07-13 1 views
2

AIR 응용 프로그램이 화면 회전과 함께 화면 방향을 변경하도록하고 싶습니다. 그러나, 나는 그것을 조경 모드에서만 강요하고 싶다. - 나는 언제나 티 세로 종횡비를 원한다.장치 회전으로 AIR 응용 프로그램 화면 방향 변경 - 다른 장치가 StageOrientation을 다르게 처리합니까?

Adobe의 공식 문서에 따르면, 하나 같이 그것을 수행해야합니다 변경 값을 설명자 파일이에 : 다음

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

및 코드에서 다음을 수행하십시오

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChanging); 

private function orientationChanging(e:StageOrientationEvent) { 
    if (e.afterOrientation == StageOrientation.DEFAULT || e.afterOrientation == StageOrientation.UPSIDE_DOWN) { 
     e.preventDefault(); 
    } 
} 

태블릿에서 테스트 해본 결과 flawelssly로 작동합니다. 그러나 누군가 다른 장치가 StageOrientation 값을 다르게 취급한다고했습니다. 일부 경우에는 StageOrientation.DEFAULT가 세로이고 다른 경우에는 가로입니다. 위의 코드는 내가하고 싶은 것과 정반대의 일을합니다. 그러나 그것이 사실인지 아닌지 나는 모른다.

아무도 확인할 수 있습니까? 다른 장치가 StageOrientation 값을 다르게 취급합니까?

+0

예 - 기본값은 가로 또는 세로를 의미 할 수 있습니다. 기기에 따라 달라집니다. –

답변

0

당신이 가로 확인하실 수 있습니다 :

stage.setAspectRatio(StageAspectRatio.LANDSCAPE); 

그리고 업데이트해야합니다 : (이 거꾸로 가고 허용하면서)

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChanging); 

private function orientationChanging(e:StageOrientationEvent) 
{ 
    //if already in landscape, ignore change 
    if (stage.stageWidth>stage.stageHeight) 
    { 
     e.preventDefault(); 
    } 
} 
+0

하지만 스테이지가 전혀 회전하지 않으므로 사용자가 기기를 뒤집어 회전 할 때 방향이 필요합니다. -/ –

+0

확인 - 사용자의 요구를 오해했습니다. –

3

가로 모드로 응용 프로그램을 강제로를 단순히 사용 AIR SDK를 3.7 이상 (또는 3.8 베타)으로 업그레이드하십시오. 이 문제에 많은 시간을 할애하여 성공을 거두지는 못했습니다. 그러나 SDK를 업데이트하면 해결됩니다.