Stage 속성 설정Flash Player 9 이상, Adobe AIR 1.0 이상 Stage 클래스는 DisplayObject 클래스의 대부분의 속성과 메서드를 무시합니다. 이 무시되는 속성 또는 메서드 중 하나를 호출하면 Flash Player 및 AIR에서 예외가 발생합니다. 예를 들어, Stage 객체는 응용 프로그램에 대한 기본 컨테이너로 위치가 고정되기 때문에 x 또는 y 속성이 없습니다. x 및 y 속성은 컨테이너를 기준으로 표시 객체의 위치를 나타냅니다. 스테이지는 다른 표시 객체 컨테이너에 포함되지 않기 때문에 이러한 속성이 적용되지 않습니다. 참고: Stage 클래스의 일부 속성과 메서드는 로드된 첫 번째 SWF 파일과 동일한 보안 샌드박스에 있는 표시 객체에만 사용할 수 있습니다. 자세한 내용은 스테이지 보안을 참조하십시오.
재생 프레임 속도 제어Stage 클래스의 frameRate 속성은 응용 프로그램에 로드된 모든 SWF 파일의 프레임 속도를 설정하는 데 사용됩니다. 자세한 내용은 Adobe Flash 플랫폼용 Adobe ActionScript 3.0 참조 설명서를 참조하십시오. 스테이지 크기 조절 제어화면에서 Flash Player 또는 AIR를 나타내는 부분의 크기가 조절되면 런타임의 스테이지 내용도 그에 맞게 조절됩니다. Stage 클래스의 scaleMode 속성은 스테이지 내용 조절 방식을 결정합니다. 이 속성은 flash.display.StageScaleMode 클래스의 상수로 정의되는 서로 다른 네 가지 값으로 설정할 수 있습니다.
AIR 윈도우에 대한 스테이지 크기 조절 모드 설정스테이지 scaleMode 속성은 윈도우 크기를 조정할 때 스테이지에서 자식 표시 객체를 크기 조정 및 클리핑하는 방식을 결정합니다. AIR에서는 noScale 모드만 사용해야 합니다. 이 모드에서는 스테이지가 크기 조절되지 않습니다. 대신 윈도우의 경계에 따라 스테이지의 크기가 직접적으로 변경됩니다. 윈도우 크기를 줄이면 객체가 클리핑될 수 있습니다. 스테이지 크기 조절 모드는 스테이지의 크기 또는 종횡비를 조절하지 못할 수도 있는 웹 브라우저와 같은 환경에서 사용하도록 설계되었습니다. 스테이지가 응용 프로그램의 이상적인 크기 또는 종횡비와 일치하지 않을 경우 이 모드를 통해 결과를 좀 더 개선할 수 있습니다. AIR에서는 항상 스테이지를 제어할 수 있으므로 대부분의 경우에 내용을 재배치하거나 윈도우의 크기를 조정하면 스테이지 크기 조절을 활용하는 것보다 더 좋은 결과를 얻을 수 있습니다. 브라우저 및 초기 AIR 윈도우에서는 윈도우 크기와 초기 비율 인수 사이의 관계가 로드된 SWF 파일로부터 읽혀집니다. 하지만 NativeWindow 객체를 만들 때는 AIR이 윈도우 크기와 비율 인수 72:1 사이의 임의의 관계를 선택합니다. 따라서 윈도우가 72x72 픽셀인 경우 윈도우에 10x10 사각형을 추가하면 10x10 픽셀의 올바른 크기로 그려집니다. 하지만 윈도우가 144x144 픽셀인 경우에는 10x10 픽셀 사각형이 20x20 픽셀로 크기가 조절됩니다. 그래도 윈도우 스테이지에 대해 noScale 대신 scaleMode를 사용한다면 윈도우의 모든 표시 객체에 대한 비율 인수를 스테이지의 현재 폭 및 높이에 대한 72 픽셀 비율로 설정하여 보정할 수 있습니다. 예를 들어 다음 코드에서는 client라는 표시 객체에 대한 필수 비율 인수를 계산합니다. if(newWindow.stage.scaleMode != StageScaleMode.NO_SCALE){ client.scaleX = 72/newWindow.stage.stageWidth; client.scaleY = 72/newWindow.stage.stageHeight; } 참고: Flex 및 HTML 윈도우는 스테이지 scaleMode를 noScale로 자동으로 설정합니다. scaleMode를 변경하면 이러한 유형의 윈도우에서 사용되는 자동 레이아웃 메커니즘이 올바르게 작동하지 않습니다.
전체 화면 모드 작업전체 화면 모드를 사용하면 컨테이너 테두리 또는 메뉴를 사용하지 않고 뷰어의 전체 모니터를 채우도록 무비의 스테이지를 설정할 수 있습니다. Stage 클래스의 displayState 속성은 SWF에 대한 전체 화면 모드를 설정 및 해제하는 데 사용됩니다. displayState 속성은 flash.display.StageDisplayState 클래스에 상수로 정의된 값 중 하나로 설정할 수 있습니다. 전체 화면 모드를 설정하려면 displayState 속성을 StageDisplayState.FULL_SCREEN으로 설정합니다. stage.displayState = StageDisplayState.FULL_SCREEN; 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로 전체 화면 모드를 사용하는 데는 보안 관련 제한 사항이 있습니다. 이러한 제한 사항은 보안에 설명되어 있습니다. 전체 화면 스테이지 크기 및 크기 조절Stage.fullScreenHeight 및 Stage.fullScreenWidth 속성은 전체 화면 모드로 즉시 전환될 때 사용되는 모니터의 높이 및 너비를 반환합니다. 사용자가 이러한 값을 검색한 후 전체 화면 모드로 전환하기 전에 한 모니터에서 다른 모니터로 브라우저를 이동할 경우 해당 값이 잘못될 수 있습니다. Stage.displayState 속성을 StageDisplayState.FULL_SCREEN으로 설정한 이벤트 핸들러에서 이러한 값을 검색할 경우 올바른 값을 갖게 됩니다. 여러 모니터를 사용하는 사용자의 경우 SWF 내용을 확장하면 모니터 하나만 채워집니다. Flash Player 및 AIR에서는 메트릭을 사용하여 SWF의 가장 많은 부분이 포함된 모니터를 확인하고, 해당 모니터에 전체 화면 모드를 적용합니다. fullScreenHeight 및 fullScreenWidth 속성은 전체 화면 모드에 사용되는 모니터의 크기만 반영합니다. 자세한 내용은 Adobe Flash 플랫폼용 Adobe 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가 실행될 때 키보드 이벤트 및 TextFields 인스턴스의 텍스트 입력 등과 같은 모든 키보드 관련 ActionScript는 전체 화면 모드에서 비활성화됩니다. 다음과 같은 예외(키 활성화)가 있습니다.
SWF 내용을 독립 실행형 Flash Player 또는 AIR에서 실행 중인 경우에는 이러한 제한 사항이 없습니다. AIR에서는 키보드 입력을 허용하는 대화형 전체 화면 모드를 지원합니다. 하드웨어를 통해 전체 화면 모드로 크기 조절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로 돌아갑니다. |
|