상당히 유용한 기능임에도 불구하고, 달리 관련된 글이 없어서 이렇게 포스팅 함.[각주:1]

AIR 1.5.2 버전부터는 ESC를 눌러도 FullScreen 상태를 빠져나가지 않도록 구현할 수 있다. KeyboardEvent.KEY_DOWN 이벤트가 발생하였을 때, 해당 이벤트를 preventDefault() 시켜주면 된다.

아래는 그 예시.


<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
	xmlns:s="library://ns.adobe.com/flex/spark" 
	xmlns:mx="library://ns.adobe.com/flex/halo"
	xmlns:woodt="http://www.woodt.com/flex"
	addedToStage="addedToStageHandler(event)">
	<fx:Script>
		<![CDATA[
			import flash.display.StageDisplayState;
			import flash.events.Event;
			import flash.events.KeyboardEvent;
			import flash.ui.Keyboard;

			protected function stage_keyDownHandler(event:KeyboardEvent):void
			{
				if (event.keyCode == Keyboard.ESCAPE)
					event.preventDefault();
			}

			protected function addedToStageHandler(event:Event):void
			{
				stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
				stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_keyDownHandler);
			}
		]]>
	</fx:Script>
</s:WindowedApplication>


물론 WindowedApplication에서 발생하는 keyDown이벤트를 핸들링 할 수도 있으나, 상황에 따라 WindowedApplication에서는 이벤트가 발생하지 않을 수도 있으므로, 위와 같이 Stage에 붙여서 사용하는 것이 안정적이다.


  1. 별 생각 없이, '이러면 되지 않을까?' 해서 눌러봤는데, 되더라. 확인해보니 AIR 1.5.2부터 지원하기 시작한 기능이라고 한다. [본문으로]
저작자 표시 비영리 변경 금지
Posted by 찬익

트랙백 주소 : http://blog.chanik.com/trackback/48 관련글 쓰기

댓글을 달아 주세요

  1. BlogIcon 지돌스타 2010/01/04 19:44  댓글주소  수정/삭제  댓글쓰기

    글쿤요. AIR는 생각도 못했네요. 좋은 팁 감사

    • BlogIcon 찬익 2010/01/05 11:45  댓글주소  수정/삭제

      AIR로 개발하다보면 Fullscreen을 쓸 일이 상당히 잦은데, ESC만 눌렀다하면 화면 밖으로 빠져나가게 되서 불편함이 많았어요. 유용하게 쓰일 팁인 것 같아요.