[AIR] AIR Window Basics
FLEX/FLEX 2010. 7. 12. 21:31AIR Window Basics
- 두 가지 Window APIs
NativeWindow Class | JavaScript Window Class |
---|---|
Flash-oriented Flash stage와 display list 사용 visual object 추가: Window stage의 display list에 추가 |
HTML-oriented HTML, CSS, JavaScript 사용 visual object 추가: DOM에 추가 |
- HTML Window의 nativeWindow property
- HTML Window는 NativeWindow의 특수한 카테고리
- nativeWindow 프로퍼티를 통해서 기본이 되는 Native Window 인스턴스에 접근할 수 있다.
- Event-based programming model
- Window object의 프로퍼티를 변경하거나 외형, 행동에 영향을 미치는 메서드를 호출하면 Event가 발생하여 관련된 컴포넌트들이 적절하게 반응하도록 한다.
- 참고
- window API에 대한 보다 상세한 문서:
http://livedocs.adobe.com/labs/flex/3/langref/mx/core/Window.html http://livedocs.adobe.com/labs/flex/3/langref/flash/display/NativeWindow.html
- 기본 윈도우
- 어플리케이션 기술 파일(ProjectName-app.xml)의 rootContent element에 지정한 파라미터를 이용하여 자동으로 생성된다.
- rootContent가 SWF 파일이면 NativeWindow가, HTML 파일이면 HTML Window가 생성된다. (# 이후 HTML 윈도우에 대한 내용은 생략 #)
-
<rootContent systemChrome="standard" transparent="false" visible="true">[SWF reference is generated]</rootContent>
- Styles of Native Windows
- Type, System Chrome, Transparency 값의 조합으로 설정한다.
- OS에 따라 각 설정 조합이 아래와 같이 표현되며, 함께 쓰일 수 없는 조합에 주의해야 한다.
Window 생성하기
- Window 생성 방법
-
- 기본 윈도우(First window): 어플리케이션 기술 파일의 rootContent에 파라미터로 기술된 속성을 가지고 자동으로 만들어진다. Stage.window property를 통해서 접근
- NativeWindowInitOptions object 생성/설정 후 window 생성자에 넘겨서 생성(ActionScript): 생성자가 돌려주는 object reference로 직접 접근
- JavaScript Window.open() method: 생략
- //create the init options
- var options:NativeWindowInitOptions = new NativeWindowInitOptions();
options.transparent = false;
options.systemChrome = NativeWindowSystemChrome.STANDARD;
options.type = NativeWindowType.NORMAL; - //create the window
var newWindow:NativeWindow = new NativeWindow(false,options);
newWindow.title = "A title";
newWindow.width = 600;
newWindow.height = 400; - //add a sprite to the window
newWindow.stage.align = StageAlign.TOP_LEFT;
newWindow.stage.scaleMode = StageScaleMode.NO_SCALE;
//show the new window - newWindow.visible = true;
Window 조작하기
- NativeWindow instance 얻기
- Window 생성자: var win:NativeWindow = new NativeWindow(false, options);
- Window stage: stage.window
- 같은 stage 위에 있는 Display Object: myDisplayObject.stage.window
- 윈도우 이벤트: 이벤트의 target property가 이벤트를 발생시킨 윈도우를 가리킨다.
- HTMLControl 또는 HTML Window: window.nativeWindow property를 통해서 접근
- 기타 작업
- 최대화: win.maximize();
- 최소화: win.minimize() ;
- 이전 크기로: win.restore();
- 닫기
- NativeWindow.close() method 호출
- 비동기 작동: closing 프로세스가 진행되는 동안 어플리케이션은 계속 실행된다.
- 닫는 작업이 모두 완료되면 close event를 발생시킨다.
- 닫기가 종료된 후에도 NativeWindow object는 유효하지만 속성이나 메서드에 접근하면 대부분 IllegalOperationError가 발생한다.
- closed property로 창이 닫혔는지 여부를 확인할 수 있다.
- 윈도우 작업 취소(Cancellation)
- System Chrome에 대한 사용자 조작은 이벤트를 발생시키기 때문에 해당 event를 받아서 preventDefault()를 호출하면 해당 동작을 취소할 수 있다.
- System Chrome이 아닐 경우 해당 작업에 대한 notification event를 발생시키고 preventDefault()가 호출되지 않았는지 확인하는 방법으로 취소를 구현할 수 있다.
- public function onCloseCommand(event:MouseEvent):void{
var closingEvent:Event = new Event(Event.CLOSING,true,true);
dispatchEvent(closing);
if(!closingEvent.isDefaultPrevented()) { - win.close();
}
}
'FLEX > FLEX' 카테고리의 다른 글
[FLEX 3.0] swc 디컴파일 - swc decompiler (0) | 2010.07.12 |
---|---|
[AIR] AIR에서 navigateToURL을 사용해서 데이터 넘길때 POST는 죽어도 않된다.ㅠ.ㅠ (0) | 2010.07.12 |
[AS3.0] navigateToURL()과 sendToURL() 함수 차이 (0) | 2010.07.12 |
[AS3.0] How to prevent pop-up blocking in Firefox (0) | 2010.07.12 |
Flex - 새로운 Open Source Data Service - BlazeDS (0) | 2010.07.12 |