'systemChrome'에 해당되는 글 2건

  1. 2008.11.08 투명 윈도우창(Chromeless Window) 설정하기
  2. 2008.10.26 어플리케이션과 네이티브윈도우
1 메인 어플리케이션 윈도우에 크롬레스적용하기
투명윈도우 창을 만들기위해서는 디스크립터를 이용하여야한다. 물론 플래시는 이부분의 편집을 상당히 쉽게 설정할 수 있도록 되어있지만 플렉스는 .xml에서 <initialWindow>에 크롬레스 등 필요한 설정을 하여야 한다.

플렉스에서는 투명창을 만들기 위해서는 반드시 mx.Window라는 어플리케이션을 포함하고 있어야 한다. 가장 바깥을 감싸고 있는 WindowedApplicationshowFlexChrome="false"로 설정하고  그 안에 Window( UI컴퍼넌트를 포함한 레이아웃컨테이너를 상속받은 클래스 )에 속성을 systemChrome="none" transparent="true" type="lightweight" showFlexChrome="false" 로 설정하여야 정상적인 투명창을 만들 수 있다. 불편한 설정도 플렉스4에서는 많이 개선되리라 기대해본다...

참고로 플렉스의 컴퍼넌트를 사용하면 플래시보다 파일크기가 상당히 커지게 된다. 코딩이 편한 장점이 크지만 결과물에 대한 단점이 매우 치명적이다. 따라서 액션스크립트 프로젝트에서도 AIR가 지원되야 한다고 생각한다.

2 서브 윈도우에 크롬레스 적용하기
메인 윈도우에서 생성된 서브윈도우( 이벤트 디스패쳐를 상속받은 NativeWindow클래스 )는 스테이지가 등록되어있고 Window컴퍼넌트에서 지원하는 메서드와 속성을 제공하고 있다.

//옵션설정
var option:NativeWindowInitOptions = new NativeWindowInitOptions();
option.type = NativeWindowType.LIGHTWEIGHT;
option.systemChrome = NativeWindowSystemChrome.NONE;
option.transparent = true;
    
//새창생성    
var window:NativeWindow = new NativeWindow(option);
window.visible = true;

//배경생성
var bg:Sprite = new Sprite();
bg.graphics.beginFill(0xFFFFFF , 0.5 );
bg.graphics.drawRoundRectComplex(0,0,200,200,10,10,10,10)
bg.graphics.endFill();
    
//환경설정
window.stage.addChild( bg );
window.width = 200
window.height = 200
window.stage.align = StageAlign.TOP_LEFT;
window.stage.scaleMode = StageScaleMode.NO_SCALE;
Posted by 정윤수 버터백통

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 정윤수 버터백통