인턴이 막바지에 접어든 요즘 한창 AIR어플을 개발하고 있습니다. 그동안 Flex로 웹 어플은 많이 만들었었는데 AIR는 처음 접하는 신세계였습니다. 뭐 AIR에서도 Flex에서 쓰는 컴포넌트들을 사용해서 그냥 쓸 수 있고 최상위 Application의 이름만 <mx:Application> 에서 <mx:WindowedApplication>으로 바뀌었겠거니 했습니다. 하지만 의외의 난관에 봉착하게 되니 그것은 바로 새창 띄우기!!!!
  대다수의 책들에 보면 NativeWindow를 사용해서 로컬에 새창을 띄울 수 있다고 설명을 하고 있습니다. 제가 본 몇몇의 책에서도 NativeWindow로 새창을 띄웁니다. 하지만 문제는 여기서 부터 시작됩니다. 새창을 띄우긴 했는데 이게 왠걸? NativeWindow에는 addChild메소드가 없습니다. 조금 구글을 뒤지다 보면 NativeWindow.stage에 addChild 메소드가 있는것을 확인할 수 있습니다. 오오~ 이제 컴포넌트가 새창에 추가되는 코드가 완성되었지만 실제로 실행해보면 컴포넌트는 눈 씻고 찾아봐도 찾을수가 없습니다. 다시 구글링을 해보니 NativeWindow에서는 DisplayObject를 확장한 UIComponent는 사용할 수 없다는 것이였습니다. 이건 뭐.. 나랑 싸우자고? -_-;
  이렇게 대략 3일을 싸운 끝에 Window란 녀석이 NativeWindow의 단점을 보완하기 위해 나왔다는것을 알게되었습니다. Window는 NativeWindow처럼 NativeWindowInitOptions를 요구하지도 않고 그냥 생성해서 바로 사용하시면 됩니다. 물론 stage를 거쳐서 컴포넌트를 추가할 필요도 없습니다. 그리고 UIComponent들도 제약없이 사용하실 수 있습니다. Window를 팝업시키려면 아래코드를 참조하시면 되시겠습니다.
			var window:Window = new Window();
			window.open(true);
			var txt:Text = new Text();
			txt.text = "Test";
			window.addChild(txt);
저작자 표시
신고
Posted by 제소

댓글을 달아 주세요

  1. eluny 2009.10.21 18:49 신고  댓글주소  수정/삭제  댓글쓰기

    이런... stage.addChild(...) 까지 같은 삽질은 하였네요. 결국 window를 써야 되는 것이군요.
    정보 감사합니다.

  2. afeleia 2009.11.03 01:08 신고  댓글주소  수정/삭제  댓글쓰기

    저 툴은 뭘 쓰는 거죠?

  3. k2me 2012.06.29 09:06 신고  댓글주소  수정/삭제  댓글쓰기

    우아.. 완전 고민하고 있었는데 한방에 끝났네요 ㅠㅠ
    왜 이제서야... 검색이되었는지 ^^;;
    좋은 글 감사합니다.



티스토리 툴바