전체 화면 모드를 사용하면 컨테이너 테두리 또는 메뉴를 사용하지 않고 뷰어의 전체 모니터를 채우도록 동영상의 스테이지를 설정할 수 있습니다. Stage 클래스의
displayState
속성은 SWF에 대한 전체 화면 모드를 설정 및 해제하는 데 사용됩니다.
displayState
속성은 flash.display.StageDisplayState 클래스에 상수로 정의된 값 중 하나로 설정할 수 있습니다. 전체 화면 모드를 설정하려면
displayState
속성을
StageDisplayState.FULL_SCREEN
으로 설정합니다.
stage.displayState = StageDisplayState.FULL_SCREEN;
전체 화면 상호 작용 모드(Flash Player 11.3의 새로운 기능)를 사용하려면
displayState
속성을
StageDisplayState.FULL_SCREEN_INTERACTIVE
로 설정합니다.
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
Flash Player에서 전체 화면 모드는 ActionScript에서 마우스 클릭(오른쪽 버튼 클릭 포함) 또는 키 입력을 통해서만 시작할 수 있습니다. 응용 프로그램 보안 샌드박스에서 실행 중인 AIR 내용의 경우 사용자 동작에 응답하여 전체 화면 모드를 시작할 필요가 없습니다.
전체 화면 모드를 종료하려면
displayState
속성을
StageDisplayState.NORMAL
로 설정합니다.
stage.displayState = StageDisplayState.NORMAL;
또한 사용자는 포커스를 다른 윈도우로 전환하거나 Esc 키(모든 플랫폼), Ctrl+W(Windows), Command+W(Mac), Alt+F4(Windows) 등과 같은 여러 키 조합 중 하나를 사용하여 전체 화면 모드를 해제할 수 있습니다.
Flash Player에서 전체 화면 모드 활성화
HTML 페이지에 포함된 SWF 파일에 대해 전체 화면 모드를 활성화하려면, 다음과 같이 Flash Player를 포함할 HTML 코드는 이름이
allowFullScreen
이고 값이
true
인
param
태그와
embed
특성을 포함해야 합니다.
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowFullScreen="true" />
</object>
Flash 제작 도구에서 [파일] > [제작 설정]을 선택하고 [제작 설정] 대화 상자의 [HTML] 탭에서 [Flash 전용 - 전체 화면 가능] 템플릿을 선택합니다.
Flex에서는 HTML 템플릿에 전체 화면을 지원하는
<object>
및
<embed>
태그가 들어 있는지 확인합니다.
웹 페이지에서 JavaScript를 사용하여 SWF 포함 태그를 생성할 경우
allowFullScreen param
태그 및 특성을 추가하도록 JavaScript를 변경해야 합니다. 예를 들어 HTML 페이지에서
AC_FL_RunContent()
함수(Flash Professional과 Flash Builder로 생성한 HTML 페이지 모두에 사용됨)를 사용하는 경우, 다음과 같이
allowFullScreen
매개 변수를 해당 함수 호출에 추가해야 합니다.
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
독립 실행형 Flash Player에서 실행되는 SWF 파일에는 적용되지 않습니다.
참고:
윈도우 모드(HTML에서 wmode)를 불투명 윈도우 없음(opaque) 또는 투명 윈도우 없음(transparent)으로 설정하면 전체 화면 윈도우는 항상 불투명하게 됩니다.
또한 브라우저에서 Flash Player로 전체 화면 모드를 사용하는 데는 보안 관련 제한 사항이 있습니다. 이러한 제한 사항은
보안
에 설명되어 있습니다.
Flash Player 11.3 이상에서 전체 화면 상호 작용 모드 사용
Flash Player 11.3 이상에서는 전체 화면 상호 작용 모드를 지원합니다. 이 모드에서는 모든 키보드 키(전체 화면 상호 작용 모드를 종료하는
Esc
키 제외)를 사용할 수 있습니다. 전체 화면 상호 작용 모드는 게임을 할 때 유용합니다(예: 멀티 플레이 게임에서 채팅을 사용하거나, FPS(First-Person Shooter) 게임에서 WASD 키보드 제어를 사용하는 경우).
HTML 페이지에 포함된 SWF 파일에 대해 전체 화면 상호 작용 모드를 활성화하려면 다음과 같이 Flash Player를 포함할 HTML 코드에
param
태그와
embed
특성(이름이
allowFullScreenInteractive
이고 값이
true
)이 포함되어야 합니다.
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
Flash 제작 도구에서 [파일] > [제작 설정]을 선택하고 [제작 설정] 대화 상자의 [HTML] 탭에서 [Flash 전용 - 전체 화면 가능] 템플릿을 선택합니다.
Flash Builder와 Flex에서 HTML 템플릿에 전체 화면 상호 작용 모드를 지원하는
<object>
및
<embed>
태그가 포함되어야 합니다.
웹 페이지에서 JavaScript를 사용하여 SWF 포함 태그를 생성할 경우
allowFullScreenInteractive param
태그 및 특성을 추가하도록 JavaScript를 변경해야 합니다. 예를 들어 HTML 페이지에서
AC_FL_RunContent()
함수(Flash Professional과 Flash Builder에서 생성한 HTML 페이지에서 사용됨)를 사용하는 경우, 다음과 같이
allowFullScreenInteractive
매개 변수를 해당 함수 호출에 추가해야 합니다.
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
독립 실행형 Flash Player에서 실행되는 SWF 파일에는 적용되지 않습니다.
전체 화면 스테이지 크기 및 크기 조절
Stage.fullScreenHeight
및
Stage.fullScreenWidth
속성은 전체 화면 모드로 즉시 전환될 때 사용되는 모니터의 높이 및 너비를 반환합니다. 사용자가 이러한 값을 검색한 후 전체 화면 모드로 전환하기 전에 한 모니터에서 다른 모니터로 브라우저를 이동할 경우 해당 값이 잘못될 수 있습니다.
Stage.displayState
속성을
StageDisplayState.FULL_SCREEN
으로 설정한 이벤트 핸들러에서 이러한 값을 검색할 경우 올바른 값을 갖게 됩니다. 여러 모니터를 사용하는 사용자의 경우 SWF 내용을 확장하면 모니터 하나만 채워집니다. Flash Player 및 AIR에서는 메트릭을 사용하여 SWF의 가장 많은 부분이 포함된 모니터를 확인하고, 해당 모니터에 전체 화면 모드를 적용합니다. fullScreenHeight 및 fullScreenWidth 속성은 전체 화면 모드에 사용되는 모니터의 크기만 반영합니다. 자세한 내용은
Adobe Flash Platform용 ActionScript 3.0 참조 설명서
에서
Stage.fullScreenHeight
및
Stage.fullScreenWidth
를 참조하십시오.
전체 화면 모드에 대한 스테이지 크기 조절 비헤이비어는 일반 모드와 동일합니다. 즉, Stage 클래스의
scaleMode
속성에 의해 크기 조절이 제어됩니다.
scaleMode
속성을
StageScaleMode.NO_SCALE
로 설정하면 SWF에서 차지하는 화면의 크기(이 경우 전체 화면)에 따라 Stage의
stageWidth
및
stageHeight
속성이 변경됩니다. 브라우저에서 보는 경우 이 컨트롤의 HTML 매개 변수가 설정을 제어합니다.
Stage 클래스의
fullScreen
이벤트를 사용하여 전체 화면 모드가 설정 또는 해제될 때를 감지하여 응답할 수 있습니다. 예를 들어, 다음 예제처럼 전체 화면 모드를 시작하거나 해제할 때 화면에서 항목을 재배치하거나, 추가 또는 제거할 수 있습니다.
import flash.events.FullScreenEvent;
function fullScreenRedraw(event:FullScreenEvent):void
{
if (event.fullScreen)
{
// Remove input text fields.
// Add a button that closes full-screen mode.
}
else
{
// Re-add input text fields.
// Remove the button that closes full-screen mode.
}
}
mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);
이 코드에 표시된 것처럼
fullScreen
이벤트에 대한 이벤트 객체는 flash.events.FullScreenEvent 클래스의 인스턴스이며, 전체 화면 모드가 활성화되는지(
true
) 또는 비활성화되는지(
false
)를 나타내는
fullScreen
속성을 포함합니다.
전체 화면 모드에서 키보드 지원
브라우저에서 Flash Player가 실행될 때 키보드 이벤트 및 TextField 인스턴스의 텍스트 입력 등과 같은 모든 키보드 관련 ActionScript는 전체 화면 모드에서 비활성화됩니다. 다음과 같은 예외(키 활성화)가 있습니다.
-
인쇄되지 않는 키(예: 화살표 키, 스페이스바, Tab 키) 선택
-
전체 화면 모드를 종료하는 키보드 단축키: Esc(Windows 및 Mac), Ctrl-W(Windows), Command-W(Mac) 및 Alt-F4
SWF 내용을 독립 실행형 Flash Player 또는 AIR에서 실행 중인 경우에는 이러한 제한 사항이 없습니다. AIR에서는 키보드 입력을 허용하는 대화형 전체 화면 모드를 지원합니다.
전체 화면 모드의 마우스 지원
기본적으로 전체 화면 모드의 마우스 이벤트는 전체 화면 모드가 아닌 경우와 동일하게 작동합니다. 그러나 전체 화면 모드에서는 선택적으로
Stage.mouseLock
속성을 설정하여 마우스 잠금을 활성화할 수 있습니다. 마우스 잠금을 활성화하면 커서가 비활성화되고 마우스를 제한 없이 움직일 수 있습니다.
참고:
마우스 잠금은 데스크톱 응용 프로그램의 전체 화면 모드에서만 활성화할 수 있습니다. 전체 화면 모드가 아닌 응용 프로그램이나 휴대·장치의 응용 프로그램에서 설정하면 예외가 발생합니다.
다음과 같은 경우에는 마우스 잠금이 자동으로 비활성화되고 마우스 커서가 다시 표시됩니다.
-
사용자가 Esc 키(모든 플랫폼), Ctrl+W(Windows), Command+W(Mac) 또는 Alt+F4(Windows)를 사용하여 전체 화면 모드를 종료하는 경우
-
응용 프로그램 윈도우가 포커스를 잃는 경우
-
[개인 정보] 대화 상자를 포함한 모든 설정 UI가 표시되는 경우
-
[파일 업로드] 대화 상자 같은 기본 대화 상자가 표시되는 경우
마우스 이동과 관련된 이벤트(예:
mouseMove
이벤트)는 MouseEvent 클래스를 사용하여 이벤트 객체를 나타냅니다. 마우스 잠금이 비활성화된 경우
MouseEvent.localX
및
MouseEvent.localY
속성을 사용하여 마우스 위치를 확인합니다. 마우스 잠금이 활성화된 경우에는
MouseEvent.movementX
및
MouseEvent.movementY
속성을 사용하여 마우스 위치를 확인합니다.
movementX
및
movementY
속성에는 마우스 위치의 절대 좌표 대신 마지막 이벤트 이후 마우스 위치의 변경 사항이 포함됩니다.
하드웨어를 통해 전체 화면 모드로 크기 조절
Stage 클래스의
fullScreenSourceRect
속성을 사용하여 Flash Player 또는 AIR에서 스테이지의 특정 영역이 전체 화면 모드로 확대되도록 설정합니다. Flash Player 및 AIR는 하드웨어를 통해 크기를 조절합니다. 이 경우 사용자의 컴퓨터에 장착된 그래픽 및 비디오 카드를 사용하며 일반적으로 소프트웨어로 크기를 조절할 때보다 더욱 빠르게 내용을 표시합니다.
하드웨어적인 크기 조절을 활용하려면 모든 스테이지나 스테이지의 일부를 전체 화면 모드로 설정합니다. 다음 ActionScript 3.0 코드는 모든 스테이지를 전체 화면 모드로 설정합니다.
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
이 속성이 유효한 사각형으로 설정되고
displayState
속성이 전체 화면 모드로 설정된 경우 Flash Player 및 AIR가 지정된 영역의 크기를 조절합니다. ActionScript 내에서 픽셀 단위의 실제 스테이지 크기는 변경되지 않습니다. Flash Player 및 AIR는 "전체 화면 모드를 종료하려면 Esc를 누르십시오"라는 표준 메시지를 수용하도록 사각형의 크기에 대해 최소 제한을 적용합니다. 이 제한은 대개 약 260 x 30 픽셀이지만 플랫폼과 Flash Player 버전에 따라 다를 수 있습니다.
fullScreenSourceRect
속성은 Flash Player 또는 AIR가 전체 화면 모드가 아닌 경우에만 설정할 수 있습니다. 이 속성을 정확히 사용하려면 먼저 이 속성을 설정한 다음
displayState
속성을 전체 화면 모드로 설정합니다.
크기 조절을 활성화하려면
fullScreenSourceRect
속성을 rectangle 객체로 설정합니다.
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
크기 조절을 비활성화하려면
fullScreenSourceRect
속성을
null
로 설정합니다.
stage.fullScreenSourceRect = null;
Flash Player의 모든 하드웨어 가속 기능을 사용하려면 [Flash Player 설정] 대화 상자를 통해 활성화합니다. 브라우저에서 Flash Player 내용을 마우스 오른쪽 버튼으로 클릭(Windows)하거나 Control 키를 누른 상태에서 클릭(Mac)하여 대화 상자를 로드합니다. 첫 번째 탭인 [표시] 탭을 선택하고 [하드웨어 가속 사용] 체크 상자를 클릭합니다.
직접 및 GPU 합성 윈도우 모드
Flash Player 10에는 직접 및 GPU 합성 모드라는 두 가지 윈도우 모드가 새로 추가되었습니다. 이러한 모드는 Flash 제작 도구의 제작 설정을 통해 활성화할 수 있습니다. AIR에서는 이러한 모드가 지원되지 않습니다. 이러한 모드를 사용하려면 Flash Player의 하드웨어 가속을 사용하도록 설정해야 합니다.
직접 모드는 가장 빠르고 직접적인 경로를 사용하여 화면에 그래픽을 표시하므로 비디오 재생에 적합합니다.
GPU 합성은 비디오 카드의 GPU(Graphics Processing Unit)를 사용하여 합성 속도를 빠르게 합니다. 비디오 합성은 단일 비디오 이미지를 만들기 위해 여러 개의 이미지를 겹치는 프로세스입니다. GPU로 합성을 빠르게 할 경우 YUV 변환, 색상 교정, 회전 또는 크기 조절, 블렌딩의 성능을 향상시킬 수 있습니다. YUV 변환은 전송에 사용되는 합성 아날로그 신호를 비디오 카메라 및 디스플레이에 사용되는 RGB(빨강, 녹색, 파랑) 색상 모델로 색상 변환하는 것을 나타냅니다. GPU를 사용하여 합성을 빠르게 하면 CPU에 대한 메모리 및 계산 요청을 줄일 수 있습니다. 또한 표준 정의 비디오를 보다 부드럽게 재생할 수 있습니다.
이러한 윈도우 모드를 구현할 때는 주의해야 합니다. GPU 합성을 사용할 경우 메모리 및 CPU 리소스가 많이 소모될 수 있습니다. 블렌드 모드, 필터링, 자르기, 마스크 적용 등의 일부 작업은 GPU에서 수행할 수 없는 경우 소프트웨어에서 수행됩니다. 이러한 모드를 사용하고 있으며 배너에는 이러한 모드를 사용하지 않아야 하는 경우 HTML 페이지당 하나의 SWF 파일을 사용하도록 제한하는 것이 좋습니다. Flash 동영상 테스트 기능에는 하드웨어 가속이 사용되지 않지만 [제작 미리 보기] 옵션을 통해 하드웨어 가속을 사용할 수 있습니다.
SWF 파일의 프레임 속도를 60보다 높게 설정할 경우 최대 화면 새로 고침 속도는 쓸모가 없습니다. 프레임 속도를 50에서 55 사이로 설정하면 이따금 다양한 이유로 발생할 수 있는 프레임 삭제가 허용됩니다.
직접 모드를 사용하려면 Microsoft DirectX 9와 VRAM 128MB(Windows의 경우) 및 OpenGL(Apple Macintosh, Mac OS X v10.2 이상의 경우)이 필요합니다. GPU 합성을 사용하려면 128MB의 VRAM이 장착된 Windows에서 Microsoft DirectX 9 및 Pixel Shader 2.0이 지원되어야 합니다. Mac OS X 및 Linux에서 GPU 합성을 사용하려면 OpenGL 1.5 및 여러 OpenGL 확장(예: framebuffer 객체, multitexture, shader 객체, 셰이딩 언어, 부분 셰이더)이 필요합니다.
Flash [제작 설정] 대화 상자의 [Flash] 탭에 있는 [하드웨어 가속] 메뉴를 통해 SWF별로
직접
및
GPU
가속 모드를 활성화할 수 있습니다. [없음]을 선택한 경우 윈도우 모드는 [HTML] 탭의 [윈도우 모드] 설정에 지정된 대로
default
,
transparent
또는
opaque
로 돌아갑니다.