TV용 AIR 응용 프로그램을 만드는 중에 Stage 클래스로 작업할 때는 다음 사항을 고려하십시오.
-
화면 해상도
-
안전 보기 영역
-
스테이지 크기 조절 모드
-
스테이지 정렬
-
스테이지 표시 상태
-
여러 스크린 크기에 맞춰 디자인
-
스테이지 품질 설정
화면 해상도
현재 TV 장치는 일반적으로 540p, 720p, 1080p 화면 해상도 중 하나를 사용합니다. 이러한 화면 해상도는 ActionScript Capabilities 클래스에서 다음과 같은 값을 갖게 됩니다.
화면 해상도
|
Capabilities.screenResolutionX
|
Capabilities.screenResolutionY
|
540p
|
960
|
540
|
720p
|
1280
|
720
|
1080p
|
1920
|
1080
|
특정 장치에 대한 전체 화면 TV용 AIR 응용 프로그램을 작성하려면
Stage.stageWidth
및
Stage.stageHeight
를 장치의 화면 해상도에 맞춰 하드 코딩하십시오. 하지만 여러 장치에서 실행되는 전체 화면 응용 프로그램을 작성하려면
Capabilities.screenResolutionX
및
Capabilities.screenResolutionY
속성을 사용하여 Stage 크기를 설정하십시오.
예를 들면 다음과 같습니다.
stage.stageWidth = Capabilities.screenResolutionX;
stage.stageHeight = Capabilities.screenResolutionY;
안전 보기 영역
TV에서
안전 보기 영역
이란 스크린 가장자리로부터 약간의 공간을 남겨 놓는 화면 영역입니다. 이 영역은 TV의 베젤이 화면의 어느 부분도 가리지 않아서 최종 사용자가 전체 영역을 볼 수 있을 정도로 충분한 간격으로 두고 안쪽으로 들어와 있습니다. 화면 주위의 물리적 프레임인 베젤은 제조업체마다 다르기 때문에 필요한 간격도 각기 다릅니다. 안전 보기 영역은 화면의 가시 영역을 보장하기 위한 것입니다. 안전 보기 영역을
제목 보호 영역
이라고도 합니다.
오버스캔
은 베젤 뒤에 있어서 보이지 않는 화면 영역입니다.
각 화면 가장자리에는 7.5%의 간격을 두는 것이 좋습니다. 예를 들면 다음과 같습니다.
전체 화면 TV용 AIR 응용 프로그램을 디자인할 때는 항상 안전 보기 영역을 고려하십시오.
-
배경 이미지나 배경색 등의 배경에는 전체 화면을 사용합니다.
-
텍스트, 그래픽, 비디오, 사용자 인터페이스 항목(예: 버튼) 등의 중요한 응용 프로그램 요소에만 안전 보기 영역을 사용합니다.
다음 표에는 7.5%의 간격을 사용할 때 일반적인 각 화면 해상도의 안전 보기 영역 크기가 나와 있습니다.
화면 해상도
|
안전 보기 영역의 폭과 높이
|
왼쪽 및 오른쪽 간격 폭
|
위쪽 및 아래쪽 간격 폭
|
960 x 540
|
816 x 460
|
72
|
40
|
1280 x 720
|
1088 x 612
|
96
|
54
|
1920 x 1080
|
1632 x 918
|
144
|
81
|
하지만 가장 좋은 방법은 항상 안전 보기 영역을 동적으로 계산하는 것입니다. 예를 들면 다음과 같습니다.
var horizontalInset, verticalInset, safeAreaWidth, safeAreaHeight:int;
horizontalInset = .075 * Capabilities.screenResolutionX;
verticalInset = .075 * Capabilities.screenResolutionY;
safeAreaWidth = Capabilities.screenResolutionX - (2 * horizontalInset);
safeAreaHeight = Capabilities.screenResolutionY - (2 * verticalInset);
스테이지 크기 조절 모드
Stage.scaleMode
를
StageScaleMode.NO_SCALE
로 설정하고 Stage resize 이벤트를 기다립니다.
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, layoutHandler);
이 설정은 스테이지 좌표를 픽셀 좌표와 동일하게 만듭니다.
FULL_SCREEN_INTERACTIVE
표시 상태 및
TOP_LEFT
스테이지 정렬과 함께 이 설정을 적용하면 안전 보기 영역을 효과적으로 사용할 수 있습니다.
특히 전체 화면 응용 프로그램에서 이 크기 조절 모드는 Stage 클래스의
stageWidth
및
stageHeight
속성이 Capabilities 클래스의
screenResolutionX
및
screenResolutionY
속성에 해당함을 의미합니다.
아울러 응용 프로그램 윈도우 크기가 변경될 때 스테이지 내용은 정해진 크기를 유지합니다. 런타임에서는 자동 레이아웃 또는 크기 조절을 수행하지 않습니다. 또한 런타임은 윈도우 크기가 변경될 때 Stage 클래스의
resize
이벤트를 전달합니다. 따라서 응용 프로그램이 시작될 때 그리고 응용 프로그램 윈도우 크기가 변경될 때 응용 프로그램의 내용을 원하는 대로 조정할 수 있습니다.
참고:
NO_SCALE
비헤이비어는 다른 AIR 응용 프로그램에서와 마찬가지입니다. 하지만 TV용 AIR 응용 프로그램에서는 안전 보기 영역을 사용할 때 이 설정을 사용하는 것이 중요합니다.
스테이지 정렬
Stage.align
을
StageAlign.TOP_LEFT
로 설정합니다.
stage.align = StageAlign.TOP_LEFT;
이 정렬은 ActionScript를 사용하여 내용을 배치할 때 편리하도록
0,0
좌표를 화면의 왼쪽 위 모서리에 배치합니다.
NO_SCALE
크기 조절 모드 및
FULL_SCREEN_INTERACTIVE
표시 상태와 함께 이 설정을 적용하면 안전 보기 영역을 효과적으로 사용할 수 있습니다.
스테이지 표시 상태
전체 화면 TV용 AIR 응용 프로그램에서
Stage.displayState
를
StageDisplayState.FULL_SCREEN_INTERACTIVE
로 설정합니다.
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
이 값은 AIR 응용 프로그램이 사용자 입력을 허용한 상태에서 전체 화면에 걸쳐 스테이지를 확장하도록 설정합니다.
가급적
FULL_SCREEN_INTERACTIVE
설정을 사용하는 것이 좋습니다.
NO_SCALE
크기 조절 모드 및
TOP_LEFT
스테이지 정렬과 함께 이 설정을 적용하면 안전 보기 영역을 효과적으로 사용할 수 있습니다.
따라서 전체 화면 응용 프로그램의 경우 주 문서 클래스에 대한
ADDED_TO_STAGE
이벤트의 핸들러에서 다음을 수행합니다.
private function onStage(evt:Event):void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onResize);
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
}
그런 다음
RESIZE
이벤트의 핸들러에서 다음을 수행합니다.
private function onResize(evt:Event):void
{
if ((Capabilities.screenResolutionX == stage.stageWidth) &&
(Capabilities.screenResolutionY == stage.stageHeight))
{
// Calculate and save safe viewing area dimensions.
}
}
스테이지 크기가
Capabilities.screenResolutionX
및
screenResolutionY
와 같은 경우 TV용 AIR에서는 하드웨어에서 해당 비디오 및 그래픽에 대해 최상의 품질을 구현하도록 합니다.
참고:
그래픽 및 비디오가 TV 화면에 표시되는 품질은
Capabilities.screenResolutionX
및
screenResolutionY
값과 다를 수 있는데, 이러한 값은 TV용 AIR이 실행되는 장치에 따라 달라집니다. 예를 들어 TV용 AIR을 실행하는 셋탑 박스의 화면 해상도는 1280 x 720이고 연결된 TV의 화면 해상도는 1920 x 1080일 수 있습니다. 하지만 TV용 AIR에서는 하드웨어에서 최상의 품질을 구현하도록 지시하지 않습니다. 따라서 이 예의 경우 하드웨어는 1920 x 1080 화면 해상도를 사용하여 1080p 비디오를 표시합니다.
여러 스크린 크기에 맞춰 디자인
같은 전체 화면 TV용 AIR 응용 프로그램이 여러 TV용 AIR 장치에서 제대로 작동하고 올바르게 표시되도록 개발할 수 있습니다. 다음을 수행하십시오.
-
스테이지 속성
scaleMode
,
align
및
displayState
를 권장 값으로 설정합니다. 권장되는 값은 각각
StageScaleMode.NO_SCALE
,
StageAlign.TOP_LEFT
,
StageDisplayState.FULL_SCREEN_INTERACTIVE
입니다.
-
Capabilities.screenResolutionX
및
Capabilities.screenResolutionY
를 기준으로 안전 보기 영역을 설정합니다.
-
안전 보기 영역의 폭과 높이에 맞춰 내용의 크기와 레이아웃을 조절합니다.
특히 휴대 장치 응용 프로그램과 비교할 경우 내용의 객체가 크지만 동적 레이아웃, 상대적 배치, 적응형 내용 등의 개념은 동일합니다. 이러한 개념을 지원하는 ActionScript에 대한 자세한 내용은
여러 화면 크기에 대한 모바일 Flash 내용 만들기
를 참조하십시오.
스테이지 품질
TV용 AIR 응용 프로그램에 대한
Stage.quality
속성은 항상
StageQuality.High
이며, 이를 변경할 수는 없습니다.
이 속성은 모든 Stage 객체의 렌더링 품질을 지정합니다.