FLEX로 구현된 RIA중 전체화면모드로 전환되는 기능이 필요하여, 그 구현 방법을 찾아보았습니다.
해결책은 의외로 간단했습니다.

핵심은 Application.application.stage.displayState를 어떤 값으로 설정하느냐에 따라 바뀌는 것이었습니다.


import flash.display.StageDisplayState;

private function toggleFullScreen():void {
  try {
    switch (Application.application.stage.displayState) {
        case StageDisplayState.FULL_SCREEN:
            /* 전체화면 모드이므로 일반 화면으로 전환시킴.*/            
            Application.application.stage.displayState = StageDisplayState.NORMAL;
            break;
        default:
            /* 전체화면모드가 아니므로 전체화면으로 전환함.*/
           Application.application.stage.displayState = StageDisplayState.FULL_SCREEN;
           break;
     }
  } catch (err:SecurityError) {
  // 무시하기
  }
}

이와 더불어 전체화면변환시 이벤트 핸들러도 설정해 주면 유용할 것 같았습니다.
우선 애플리케이션수준의 이벤트핸들러에서 전체화면 변환 이벤트핸들러를 지정해 주면 됩니다.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init(event)">


이제 init함수를 만들어 줘야겠지요.

private function init(evt:Event):void {
    Application.application.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler);
}

private function fullScreenHandler(evt:FullScreenEvent):void {
    if (evt.fullScreen) {
        // 전체화면시 해야 할 일.
    }else{
        // 일반화면시 해야 할 일
    }
}

자. 이것으로 FLEX쪽은 끝났습니다. 그러나 한가지 남은 일이 있었으니..SWF를 읽어오는 HTML문서에서 <object /> 또는 <embed /> 사이에 "allowFullScreen" 속성을 "true"로 설정해 주어야 합니다. FlexBuilder이용시에는 HTML래퍼에서 수정해 주어야 합니다.

AC_FL_RunContent(
    "src", "main",
    "width", "100%",
    "height", "100%",
    "align", "middle",
    "id", "main",
    "quality", "high",
    "bgcolor", "#869ca7",
    "name", "main",
    "allowScriptAccess","sameDomain",
    "type", "application/x-shockwave-flash",
    "pluginspage", "http://www.adobe.com/go/getflashplayer",
    "allowFullScreen", "true"
);


전체화면모드 사용시에는 키보드 입력이 수행되지 않습니다.

아. 그리고 Application.application대신 systemManager를 사용해도 된다네요. 이 경우에는 mx.managers.SsytemManager를 import해야겠지요.

import mx.managers.SystemManager;

systemManager.stage.displayState = StageDisplayState.NORMAL;


  1. 2008.08.06 01:26

    비밀댓글입니다

  2. 과객 2009.05.18 17:42 신고

    감사히 잘 보고 갑니다..^^

  3. 어둠속에서 2011.02.08 01:31 신고

    neozest님

    감사합니다.~

  4. Favicon of http://www.youtuwatch.org/ replica watches 2012.06.18 17:01 신고

    반갑습니다! 정확 벚꽃 플라이 계절입니다. 이게 우리의 자부심입니다. 당신을 응원!

+ Recent posts