출처
http://dsbuilding.kr/10
Air는 어플리케이션 윈도우의 디자인을 다양하게 표현할 수 있습니다.
OS기반으로 만들 수도 있고 Flex Framework에서 공급하는 Air 크롬형태로 제작할 수 있으며,
개발자가 직접 디자인하여 벡터기반 또는 비트맵기반으로 윈도우를 제작할 수도 있습니다.
저는 Flex Builder를 사용하기 때문에 Flex Framework 기반으로 설명하겠습니다.
Flex Builder에서 Air Window를 생성하려면 WindowedApplication 와 Window 컴포넌트를 사용합니다.
WindowedApplication 컴포넌트는 Air 어플리케이션에서 한개만 존재해야하는 메인 윈도우 객체 입니다. 한 어플리케이션에서 다른 윈도우를 생성하고 싶다면 Window 컴포넌트를 이용해야 합니다.
WindowedApplication 와 Window 컴포넌트는 Flex containers로 디자인 되었기 때문에 Layout 역할로서 Flex components 들을 담을 수 있습니다. 때문에 Flex를 다룰 줄 안다면 환경이 웹에서 윈도우로 바뀐것만 제외하고는 같기때문에
Flex를 다루는 기술 + 윈도우시스템제어기술 이 두가지를 습득하면 Air로 쉽게 어플 개발이 가능합니다.
기본적으로 플래시 기반에서 윈도우를 관리하는 클래스는 NativeWindow 입니다.
WindowedApplication 와 Window 컴포넌트들은 Flex Framework 기반에서 쉽게 윈도우를 생성할 수 있도록 만들어진 컴포넌트입니다. 따라서 NativeWindow 클래스를 내장하고 있습니다.
하나의 윈도우 컴포넌트 객체는 하나의 스테이지를 관리하며 스테이지는 nativeWindow속성을 통해 윈도우를 관리 할 수 있다고 보면 됩니다.
윈도우 스타일을 설정하려면 아래 3가지 속성을 이해해야 합니다.
- type
- systemChrome
- transparent
윈도우를 처음 생성할 때 위의 속성들을 사용하여 스타일을 만듭니다. 윈도우가 생성된 후에는 속성값을 변경할 수 없습니다.
* transparent 속성이 true 이거나 type이 lightweight 일때는 systemChrome을 필히 none으로 설정하여야합니다. 이를 위반했을 시엔 프로세스는 죽지 않습니다. 혹시 실수로 설정해서 컴파일이 되지 않으면 작업관리자의 adl.exe 프로세스 찾아 강제로 종료시키면 됩니다.
Type
| type |
description |
| normal |
표준 윈도우를 생성하는 경우 |
| utility |
task bar 정보가 표시되지 않음, 상태바표시되지 않음,시스템메뉴팝업가능(alt+spacebar) |
| lightweight |
task bar 정보가 표시되지 않음,시스템메뉴팝업안됨 |
systemChrome
systemChrome 속성 값은 standart 또는 none이 있습니다. standard로 설정되면 OS 크롬 스타일을 따릅니다. none으로 설정하면 Flex 크롬 스타일을 따릅니다.
transparent
transparent속성 값은 true 또는 false 입니다. 알파값을 사용하기 위해서는 transparent값을 true로 설정해야합니다. true속성값과 systemChrome의 standerd 속성값을 함께 사용할 수 없습니다. true로 설정되었을 시에는 systemChrome은 none이 되어야합니다.
window initialization properties
initialization 속성은 윈도우가 만들어진 후에는 변경할 수 없습니다. initialization 속성의 default 값은 다음과 같습니다.
| Property |
Defalut Value |
| systemChrome |
standard |
| type |
normal |
| transparent |
false |
| maximizable |
true |
| minimizable |
true |
| resizable |
true |
위 속성들은 초기 윈도우가 만들어질 때 세팅할 수 있습니다. 메인윈도우(WindowApplicated) 에서는 type값을 바꿀 수 없고 항상 normal 입니다. 또한 WindowApplicated 는 속성값을 xml 파일에서 해줘야합니다. (Flex Builder에서 Air프로젝트를 생성하면 어플이름명-app.xml이란 파일이 생성됩니다.)