Stage 속성 설정

Stage 클래스는 DisplayObject 클래스의 대부분의 속성과 메서드를 무시합니다. 이 무시되는 속성 또는 메서드 중 하나를 호출하면 Flash Player에서 예외가 발생합니다. 예를 들어, Stage 객체는 응용 프로그램에 대한 기본 컨테이너로 위치가 고정되기 때문에 x 또는 y 속성이 없습니다. xy 속성은 컨테이너를 기준으로 표시 객체의 위치를 나타냅니다. Stage는 다른 표시 객체 컨테이너에 포함되지 않기 때문에 이러한 속성이 적용되지 않습니다.

중요

 

Stage 클래스의 일부 속성과 메서드는 로드된 첫 번째 SWF 파일과 동일한 보안 샌드박스에 없는 표시 객체에는 사용할 수 없습니다. 자세한 내용은 스테이지 보안 을 참조하십시오.

세부 목차

재생 프레임 속도 제어
스테이지 크기 조절 제어
전체 화면 모드 작업

재생 프레임 속도 제어

Stage 클래스의 framerate 속성은 응용 프로그램에 로드된 모든 SWF 파일의 프레임 속도를 설정하는 데 사용됩니다. 자세한 내용은 ActionScript 3.0 언어 및 구성 요소 참조 설명서를 참조하십시오.

스테이지 크기 조절 제어

Flash Player 화면 크기를 조절하면 스테이지 내용이 이에 맞게 자동으로 조절됩니다. Stage 클래스의 scaleMode 속성은 스테이지 내용 조절 방식을 결정합니다. 이 속성은 flash.display.StageScaleMode 클래스의 상수로 정의되는 서로 다른 네 가지 값으로 설정할 수 있습니다.

세 가지 scaleMode 값(StageScaleMode.EXACT_FIT, StageScaleMode.SHOW_ALLStageScaleMode.NO_BORDER)의 경우 Flash Player는 해당 경계에 맞춰 스테이지 내용의 크기를 조절합니다. 이 세 가지 옵션에 따라 다음과 같이 크기 조절 수행 방식이 달라집니다.

또는 scaleModeStageScaleMode.NO_SCALE로 설정된 경우, 뷰어에서 Flash Player 윈도우 크기를 조절할 때 스테이지 내용은 각각 정의된 크기로 유지됩니다. 이 크기 조절 모드에서만 Stage 클래스의 widthheight 속성을 사용하여 크기 조절된 Flash Player 윈도우의 실제 픽셀 크기를 결정할 수 있습니다. 다른 크기 조절 모드에서는 stageWidthstageHeight 속성이 항상 SWF의 원래 폭 및 높이를 반영합니다. 또한 scaleModeStageScaleMode.NO_SCALE로 설정되고 SWF 파일의 크기가 조절된 경우 Stage 클래스의 resize 이벤트가 전달되어 이에 따라 조절할 수 있습니다.

따라서 scaleModeStageScaleMode.NO_SCALE로 설정하면 원하는 경우 윈도우 크기 조절에 맞춰 화면 내용을 조절하는 방법을 보다 세밀하게 제어할 수 있습니다. 예를 들어, 비디오와 컨트롤 막대가 포함된 SWF에서 스테이지의 크기를 조절할 때 컨트롤 막대를 동일한 크기로 유지하고 스테이지 크기 변경에 맞춰 비디오 윈도우의 크기만 변경할 수 있습니다. 다음 예제에서 이를 확인할 수 있습니다.

// videoScreen은 비디오를 포함하는 표시 객체(예: Video 인스턴스)로서
// 스테이지의 왼쪽 위 모서리에 배치되어야 하며 SWF 크기 조절 시 videoScreen의
// 크기도 조절되어야 합니다.

// controlBar는 여러 버튼을 포함하는 표시 객체(예: Sprite)로서
// 스테이지의 왼쪽 아래 모서리(videoScreen 아래)에 배치되어야 하며
// SWF 크기 조절 시 controlBar의 크기도 조절되면 안됩니다.

import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

var swfStage:Stage = videoScreen.stage;
swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;

function resizeDisplay(event:Event):void
{
    var swfWidth:int = swfStage.stageWidth;
    var swfHeight:int = swfStage.stageHeight;

    // 비디오의 윈도우 크기를 조절합니다.
    var newVideoHeight:Number = swfHeight - controlBar.height;
    videoScreen.height = newVideoHeight;
    videoScreen.scaleX = videoScreen.scaleY;
    
    // 컨트롤 막대의 위치를 변경합니다.
    controlBar.y = newVideoHeight;
}

swfStage.addEventListener(Event.RESIZE, resizeDisplay);

전체 화면 모드 작업

전체 화면 모드를 사용하면 테두리, 메뉴 모음 등을 사용하지 않고 SWF로 뷰어의 전체 모니터를 채울 수 있습니다. Stage 클래스의 displayState 속성은 SWF에 대한 전체 화면 모드를 설정 및 해제하는 데 사용됩니다. displayState 속성은 flash.display.StageDisplayState 클래스에 상수로 정의된 값 중 하나로 설정할 수 있습니다. 전체 화면 모드를 설정하려면 displayStateStageDisplayState.FULL_SCREEN으로 설정합니다.

// mySprite는 표시 목록에 이미 추가된 Sprite 인스턴스입니다.
mySprite.stage.displayState = StageDisplayState.FULL_SCREEN;

전체 화면 모드를 종료하려면 displayState 속성을 StageDisplayState.NORMAL로 설정합니다.

mySprite.stage.displayState = StageDisplayState.NORMAL;

또한 사용자는 포커스를 다른 윈도우로 전환하거나 Esc 키(모든 플랫폼), Ctrl+W(Windows), Command+W(Mac), Alt+F4(Windows) 등과 같은 여러 키 조합 중 하나를 사용하여 전체 화면 모드를 해제할 수 있습니다.

전체 화면 모드에 대한 Stage 크기 조절 비헤이비어는 일반 모드와 동일합니다. 즉, Stage 클래스의 scaleMode 속성에 의해 크기 조절이 제어됩니다. scaleMode 속성을 StageScaleMode.NO_SCALE로 설정하면 SWF에서 차지하는 화면의 크기(이 경우 전체 화면)에 따라 Stage의 stageWidthstageHeight 속성이 변경됩니다.

Stage 클래스의 fullScreen 이벤트를 사용하여 전체 화면 모드가 설정 또는 해제될 때를 감지하여 응답할 수 있습니다. 예를 들어, 다음 예제처럼 전체 화면 모드를 시작하거나 해제할 때 화면에서 항목을 재배치하거나, 추가 또는 제거할 수 있습니다.

import flash.events.FullScreenEvent;

function fullScreenRedraw(event:FullScreenEvent):void
{
    if (event.fullScreen)
    {
        // 입력 텍스트 필드를 제거합니다.
        // 전체 화면 모드를 닫는 버튼을 추가합니다.
    }
    else
    {
        // 입력 텍스트 필드를 다시 추가합니다.
        // 전체 화면 모드를 닫는 버튼을 제거합니다.
    }
}

mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);

이 코드에 표시된 것처럼 fullScreen 이벤트에 대한 event 객체는 flash.events.FullScreenEvent 클래스의 인스턴스이며, 전체 화면 모드가 활성화되는지(true) 또는 비활성화되는지(false)를 나타내는 fullScreen 속성을 포함합니다.

ActionScript에서 전체 화면 모드로 작업할 경우 다음 사항을 고려합니다.

또한 이해해야 할 몇 가지 추가 보안 관련 제한 사항이 있습니다. 이러한 제한 사항에 대해서는 보안 샌드박스에 설명되어 있습니다.


Flash CS3

 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/main/00000150.html