[AS3] Flash Player9의 새로운 풀 스크린 모드

Programming/ActionScript 3.0 2007. 7. 4. 23:31
Flash Player9 업데이트 3에서는 공개되는 하드웨어 기능을 이용한 풀 스크린 모드가 추가되었다.

하드웨어 스켈링의 사용법
Flash Player9 업데이트 3의 Stage 오브젝트에는 fullScreenSourceRect라고 하는 속성이 추가된다. 이 속성은 AS2와 AS3에서 모두 사용 가능하다. fullScreenSourceRect에 의해 지정된 영역은 하드웨어의 스켈링 기능에 의해 표현 되기 때문에 기존의 풀 스크린 모드보다 퍼포먼스와 화질 면에서 현격히 개선되고 있다.

아래 샘플은 Stage를 화면 전체에 넓히는 기능이다.




import flash.geom.*;
function goFullScreen()
{
Stage["fullScreenSourceRect"] = new Rectangle(0, 0, Stage.width, Stage.height);
Stage["displayState"] = "fullScreen";
}

비디오를 풀 스크린으로 표시하는 경우는 Rectangle 크기를 비디오의 오리지날의 크기로 한다.

AS3에서 Stage의 fullScreenSourceRect속성을 적용하려면 playerglobal.swc를 클래스패스영역에 포함 시켜야 한다. CS3 의 ActionScript 3.0/classes 폴더에 기존에 파일을 아래 파일로 바꿔주어야 한다. (playerglobal.swc파일을 첨부한다.)



비디오의 퀄리티와 용량에 따라 다르겠지만 대체적으로 fullScreenSourceRect속성을 사용하면 비디오를 풀스크린으로 표현했을 때의 CPU 점유율은 사용하지 않은 것 보다 대략 절반 정도로 떨어지고 화질 면에서도 개선된 점을 발견할 수 있다.

    

설정

트랙백

댓글

  • karaman 2007.07.25 10:08 ADDR 수정/삭제 답글

    좋은 정보 받아서 갑니다. 꼭 필요한 기능이었는데 도움이 돼었네요.
    혹시 풀화면 하였을때 esc키를 누르면 돌아갑니다... 라는 글자를 없애는 방법은 아시는지요?
    그리고 버튼을 클릭해야만 풀스크린이 돼는듯한데.
    버튼을 클릭하지 않고 하는방법은 없나요?

    • jasu 2007.07.25 11:41 신고 수정/삭제

      안녕하세요... Esc관련 안내 글은 컨트롤 할 수 있는 기능을 제공하고 있지 않은 듯 합니다. 그리고 풀스크린 모드는 사용자의 인터렉션에 의해서만 적용할 수 있습니다. 따라서 버튼을 클릭하지 않고 자동으로 풀스크린 모드로 적용할 수는 없습니다.

  • karaman 2007.07.26 03:30 ADDR 수정/삭제 답글

    답변 감사합니다. 우연치않게 들르게 돼어 좋은정보 많이 얻어 갑니다.
    제가 풀 스크린을 사용하면서 또 하나 문제 생긴것이 inputtext에 커서가 나타나지 않는 문제가 생기네요. 일반 플래쉬 플레이어로 풀스크린 가동시 상관없는데
    html을 사용하여 풀스크린 사용할땐 풀스크린상태에서inputtext에 커서가 나타나지 않네요 글자도 써지질 않구요 혹시 이부분에 대해 아시면 알려주세요 ^^ 풀스크린된다고 큰소리 쳐놨는데 이거참 난감합니다 ㅎㅎ

    • jasu 2007.07.26 03:39 신고 수정/삭제

      안녕하세요...^^; 풀스크린 모드에서는 키보드 이벤트는 발생하지 않습니다. 인터렉션은 오로지 마우스 이벤트만 가능하고 풀스크린으로 사용할 경우에 키보드 사용은 ESC키만 사용할 수 있습니다... 제 생각에는 풀스크린으로 하지 마시고 기존처럼 브라우저 팝업 전체 창으로 하시는 것이 좋을 것 같네요

  • chaospace 2007.08.21 11:59 ADDR 수정/삭제 답글

    fullScreenMode에 input텍스트가 안된다는 정보를 이렇게 얻어가네요..
    컥!이네요.. 이런 맹점이 있을 줄이야..
    좋은 정보감사합니다.!

    • jasu 2007.08.21 16:31 신고 수정/삭제

      ^^ 네... 헬프파일에 있는 내용인데 짮게 언급하고 있어서 지나치기 쉬운듯 싶네요...

  • 봉구 2007.09.22 14:14 ADDR 수정/삭제 답글

    소중한 정보 감사합니다....담아갈께요...

    • jasu 2007.09.24 22:23 신고 수정/삭제

      네...방문 감사합니다. 즐거운 추석 연휴 되세요...

  • 유니 2007.10.24 11:44 ADDR 수정/삭제 답글

    좋은 정보 감사합니다..^^
    그런데 swf 파일로 로컬에서는 잘되는데 익스플로어로는 안되네요..
    ㅡㅡ; 왜그런건가요?

    • jasu 2007.10.25 00:44 신고 수정/삭제

      안녕하세요...
      로컬에서는 풀스크린이 되는데 웹페이지에서는 되지 않는다는 말씀이신가요? 혹시 swf 임베드 처리 html코드상에서 allowFullScreen="true" 로 설정하셨는지 확인해 보세요 false일 경우에는 풀스크린 모드를 지원하지 못합니다.
      감사합니다.

  • beartyoon 2009.05.14 18:32 ADDR 수정/삭제 답글

    우선 좋은 정보 감사드립니다.
    제가 하드웨어 스케일링을 2.0버전으로 작업을 했는데요
    전체화면모드에서 esc를 누르고 일반화면으로 전환후에 다시 전체화면모드로 가려고
    버튼(전체화면버튼)을 클릭하면 바로 전체화면으로 변경이 되질않고 화면이 깜빡거립니다. 그상태에서 한번 더 클릭하면 전체화면이 되구요..
    혹시 버그인가요?
    3.0에서는 잘되는것 같은데요 ...
    답변 부탁드리겠습니다. (__)

    • jasu 2009.05.14 23:36 신고 수정/삭제

      안녕하세요
      아직 2.0에서 fullscreen mode 버그에 관련된 내용을 아는 부분이 없네요. 일단 여러가지 테스트가 필요할 듯 싶습니다. 브라우저별로(ie, 파폭) 테스트가 필요할 듯 싶고 브라우저에 영향 없이 같은 반응이 나타난다면 일단 플래시 내부에서 문제를 찾아보는 방향이 좋을 듯 싶습니다.

      증상으로 봐서는 fullscreen 모드에서 normal 모드로 변경한 후 다시 fullscreen모드로 변경할 때 특정 부분에서 발생한 error가 최종 Stage로 throw되면서 발생할 가능성이 있습니다. 모드 변경 기능부 스크립트에서 토글이 제대로 처리되고 있는지 확인이 필요할 것 같습니다.

      위 문제를 테스트 하기 위해서는 기존에 적용하려고 했던 파일에서 문제를 찾기 보다는 테스트를 위한 간단한 샘플을 만들고 테스트를 해보시는 것을 권합니다.

      그리고 증상이 발생하는 부분에서 어떤 error가 throw되고 있지는 않은지 확인하기 위해서는 플래시플레이어 디버깅 버전을 설치하시고 테스트 해보시는 것이 도움이 될 것 같네요

  • beartyoon 2009.05.15 18:22 ADDR 수정/삭제 답글

    방금 파이어폭스에서 테스트 해보니
    오류없이 작동을 하네요.
    음...

    그럼 플래시 문제는 아니라는 이야기네요
    쩝...
    해결책이 있을까요?