AIR는 메인 클래스 또는 도큐먼트 크래스를 어플리케이션으로 설정한다. 따라서 기본 창은 1개를 제공하는데 경우에 따라 서브 윈도우를 열어야 하는 경우 nativeWindow클래스를 사용한다.따라서 어플리케이션(윈도우)과 그와 연계된 서브 프로세스(윈도우)들로 구성된다.

어플리케이션에서 윈도우를 새로 만들기 위해서는 NativeWindow()클래스를 사용한다. 이때 반드시 NativeWindowInitOptions()를 설정하여 NativeWindow()의 파라미터로 설정한다. NativeWindowInitOptions()는 새로 열릴 윈도우의 상태를 설정하는 클래스이다.

type = 새로만들 윈도의 시스템 크롬 설정
NativeWindowType.UTILITY : 시스템 크롬을 부분적 사용
NativeWindowType.NORMAL : 시스템 크롬을 전부 사용(새로운 인스턴스 생성에 적합)
NativeWindowType.LIGHTWEIGHT : 시스템크롬을 비사용(systemChrome = none 설정)
systemChrome = 윈도우창(주변의 크롬 창)의 옵션바 등의 투명도 설정
NativeWindowSystemChrome.STANDARD : OS의 기본 크롬창을 사용한다.
NativeWindowSystemChrome.NONE : 크롬창을 제거한다.
transparent : 투명 여부 설정
minimizable : 최소화 여부 설정
maximizable : 최대화 여부 설정
resizable : 리사이즈 여부 설정
x : 윈도우 창의 x위치
y : 윈도우 창의 y위치
width : 윈도우창의폭
height : 윈도우 창의 높이

NativeWindow()는 디스플레이 오브젝트 컨테이너를 상속받지 않는다. 따라서 이를 담고있는 stage로 가서 객체를 addChild()하여야 한다. 또한 컨텐츠의 정열과 크기의 제어 또한 stage에서 설정한다.
scaleMode : 윈도우 창에 의한 스케일 조절
StageScaleMode.NO_SCALE : 컨텐츠의 스케일 변화 없게
StageScaleMode.EXACT_FIT : 종횡비 없이 강제로 알맞는 크기 제어
StageScaleMode.NO_BORDER : 종횡비를 유지하되 깨짐을 최소화 하여 컨텐츠 크기 제어
StageScaleMode.SHOW_ALL : 종횡비를 유지하고 깨짐을 최소화 하여 전체 내용이 보이도록 크기 제어
align : 윈도우 창에 의한 위치 설정
StageAlign에 여러가지 설정된 상수로 설정한다.

이렇게 생선한 윈도우는 항상 visible = true나 activate(활성화)에 의해 화면에 나타나게 된다.


Posted by 버터백통
AIR/디스크립터2008. 10. 26. 17:28


Ant처럼 AIR 어플리케이션을 개발하기 위해서는 항상 어플리케이션 디스크립터를 수반하게 된다. 이 디스크립터는 XML형태로 어플리케이션 파일과 같이 생성되는데 다음과 같은 구조를 가지고 있다.
(아래는 런타임 버전 1.1인 경우이다.)

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.1">

[ AIR 관련 설정 ]
유니크한 어플리케이션의 식별자
 <id></id>
AIR 어플리케이션의 파일이름 : 필수
 <filename></filename>
윈도우 타이틀이자 기본 설치 폴더명을 설정요소
  <name></name>
어플리케이션의 버전 번호 : 필수
 <version>v1</version>
AIR 어플리케이션의 설명
 <!-- <description></description> -->
카피라이터
 <!-- <copyright></copyright> -->

[ 어플리케이션의 윈도우 상태 설정 ]
실제 어플리키에션의 상태를 설정 : 필수
 <initialWindow>
참조할 컨텐츠(SWF,HTML등)의 참조자(플렉스 빌더는 자동으로 설정) : 필수
  <content>[This value will be overwritten by Flex Builder in the output app.xml]</content>
 메인윈도우 창의 타이틀
  <!-- <title></title> -->
윈도우창의 크롬상태 설정 : standard , none설정
  <!-- <systemChrome></systemChrome> -->
윈도우가 크롬(none)일 때 투명여부 설정 : 기본은 false
  <!-- <transparent></transparent> -->
윈도우창의 보여짐 설정 : 기본은 false
  <!-- <visible></visible> -->
최소창 가능 여부 : 기본은 true
  <!-- <minimizable></minimizable> -->
최대창 가능 여부 : 기본은 true
  <!-- <maximizable></maximizable> -->
리사이즈 가능 여부 : 기본은 true
  <!-- <resizable></resizable> -->
윈도우의 가로 크기
  <!-- <width></width> -->
윈도우의 세로크기
  <!-- <height></height> -->
어플리케이션 실행 시 x위치
  <!-- <x></x> -->
어플리케이션 실행 시 y위치
  <!-- <y></y> -->
리사이즈시 윈도우의 최소크기 : 400 200 으로 가로와 세로 입력
  <!-- <minSize></minSize> -->
리사이즈시 윈도우의 최대크기 : 1600 1200 으로 가로와 세로 입력
  <!-- <maxSize></maxSize> -->
 </initialWindow>

[ 어플리케이션 설치 관련 ]
설치시 사용될 하위 폴더 이름 지정
 <!-- <installFolder></installFolder> -->
시작메뉴 - 모든 프로그램 바로가기 폴더명 지정 : 윈도우에서만 실효
 <!-- <programMenuFolder></programMenuFolder> -->
 어플리케이션에서 사용할 시스템 아이콘 : PNG파일
 <!-- <icon>
  <image16x16></image16x16>
  <image32x32></image32x32>
  <image48x48></image48x48>
  <image128x128></image128x128>
 </icon> -->

자동 업데이트 여부 설정 : true/false
 <!-- <customUpdateUI></customUpdateUI> -->
웹브라우저 링크 클릭시 어플리케이션 실행 여부
 <!-- <allowBrowserInvocation></allowBrowserInvocation> -->

[ 외부 파일 클릭시 어플리케이션 연동 설정 ]
 <!-- <fileTypes> -->
1개의 외부 파일에 대한 설정
  <!-- <fileType> -->
등록한 파일 유형을 위해 표시하는 이름 : 필수
   <!-- <name></name> -->
등록할 확장자
   <!-- <extension></extension> -->
보여줄 설명 : 윈도우에서는 종류와 파일형식에서 표시
   <!-- <description></description> -->
MIME 타입 설정
<!-- <contentType></contentType> -->   
파일 아이콘 설정 : PNG포맷
   <!-- <icon>
    <image16x16></image16x16>
    <image32x32></image32x32>
    <image48x48></image48x48>
    <image128x128></image128x128>
   </icon> -->
   
  <!-- </fileType> -->
 <!-- </fileTypes> -->
</application>

위처럼 디스크립터를 설정하여야 한다. 하지만 주로 플래시나 플렉스에서 대부분 자동으로 설정이 되므로 크게 고민 할 부분은 아니지만 플렉스인 경우 메인 어플리케이션의 윈도우 크롬 설정은 반드시 디스크립터를 통해서 설정되어야 한다. 이 부분은 플렉스 보다 플래시가 훨씬 편하게 되어있다. 플래시는 별도로 AIR Settings라는 메뉴를 두어 관리와 설정이 편하게 되어있지만 플렉스3은 직접 설정해 주어야 한다... 이부분은 플렉스4가 나오면 자연스럽게 개선 될 것 이라고 생각한다.



Posted by 버터백통
AIR/AIR란?2008. 10. 22. 14:08
제가 생각하는 AIR란 예전부터 지금까지 이어온 CS를 보다 화려하게(?) 개발할 수 있는 Actionscript기반의 개발툴이라고 생각합니다.

이미 C나 MFC,VB... 등을 사용하여 사용자 컴퓨터에서 실행되는 데스크탑 어플리케이션을... SWF를 이용하여 화려한 UI로 개발하기 위해서는 별도로 MFC나 C등을 공부하여(또는 위탁하여) SWF를 탑재한 어플리케이션을 설치하고 웹을 통한 DB나 컨텐츠 등을 받아서 활용 하여야만 했습니다. 따라서 작업 절차가 번거롭고 실제로 SWF를 탑재하기 보다는 그냥 VB등으로 어플을 개발하는 사례가 많았습니다.
이러한 번거로운 작업을 AIR라는 툴의 등장으로 이제 AS기반에서 개발에서 배포 및 설치 까지 가능하게 된 것입니다. 제가 생각 했을 때 액션스크립트는 다른 언어(C등)보다 퍼포먼스가 좀 떨어질지는 모르지만 효과나 UI는 어느 언어보다 강력하다고 생각합니다.

이러한 강력한 UI의 CS가 등장함에 따라 데스크탑 어플리케이션들도 정적인 UI에서 동적인 UI로 진화하지 않을까 생각합니다.

아래는 어도비에서 소개한 AIR에 관한 소개글을 발췌하였습니다.
.......................................................................................................................................................
Adobe AIR는 운영체제에 상관 없이 데스크톱에서 RIA(Rich Int-ernet Aapplications)를 개발 및 배포할 수 있는
런임입니다.
여러분은 전통적인 데스크톱 개발 기술을 배우지 않고도 기존에 사용하던 웹 기술(HTML, Javascript, Adobe Flash®, Adobe Flex™, Ajax)로 개발한 웹 어플리케이션을 데스크톱에서 실행할 수 있습니다.

기술적 특징
운영체제에 상관 없이 동작하는 데스크톱 기반 런타임
HTLM을 위한 오픈소스 WebKit 엔진
Flash를 위한 오픈소스 Tamarin VM
Adobe Flash Player 8보다 10배 이상의 속도 향상을 제공하는 AVM 3 JIT 컴파일러
바이너리 호환성 - 운영체제에 상관없이 같은 Adobe AIR 파일로 애플리케이션 설치

Posted by 버터백통