'투명윈도우'에 해당되는 글 1건

  1. 2008.11.08 투명 윈도우창(Chromeless Window) 설정하기
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 정윤수 버터백통