윈도우의 상태 즉 모니터상에서 위치나 크기 등 메인 어플리케이션은 WindowedApplication속성이나 디스크립터 또는 <mx:Script>에서 nativeWindow로 접근하여 사용한다.
보통 크기는 width , height 위치는 x , y 등으로 설정되므로 .xml에서 찾아보면 쉽게 발견 할 수 있다.

메인에서 생성된 서브윈도우(NativeWindow)의 위치나 크기 설정도 앞서 투명창 설정한 바와 같이 Delgator에 바로 속성을 설정할 수 있다.
window.width = 300
window.height = 200
window.x = 300
window.y = 400


참고로 이벤트에 의하여 객체를 받아(event.target) Delegator를 처리할때는
아래처럼 stage로 접근하여 붙어있는 nativewindow로 접근한다.
event.target.stage.nativeWindow.x = 0;
event.target.stage.nativeWindow.y = 0;

사용자 모니터의 해상도를 읽어와 항상 가운데에 위치하도록 하기 위해서는 flash.system.Capabilities를 사용한다.

모니터 중앙에 위치
window.x = ( Capabilities.screenResolutionX - width ) / 2;
window.y = ( Capabilities.screenResolutionY - height ) / 2;  

참고로 screenResolutionX는 사용자 모니터의 가로 해상도이며 screenResolutionY는 세로 해상도이다.
Posted by 버터백통
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 버터백통
이런저런 이야기2008. 10. 29. 12:56

올해 상반기 부터 개발한 이미지 편집기 입니다. 지금도 기능 개선과 약간의 수정은 진행되고 있지만 자체 암호화 솔루션을 만들어 이제 공개가 가능해졌네요~ 4명의 인력이 기획부터 약 6개월간 개발한 솔루션입니다~
http://211.48.55.233/XprimeImageEditorServer/ImageEditor/index.html
Posted by 버터백통