머리나쁘면 평생고생한다더니 그말이 맞습니다!
이거 소스코드 한줄만 고치면 되는 것을 저는 그것도 모르고 계속 샘플분석했어요--;
AIR프로젝트를 만들게 되면 xml이 자동으로 만들어지게 되는데 저는 그건 제가 관리하는게 아니라고 생각했는데 아니더군요. 안에 보면 셋팅할 수 있는게 몇개 있더군요 ^^

우선 기존 윈도우틀을 없애봅시다.

File -> New -> Flex Project를 선택하시고, ProjectName은 NoneWindowApp라고 하고
Application Type은 Desktop application을 선택하시고 Finish를 선택합니다.

프로젝트이름-app.xml파일이 있을 껍니다. 이거를 보게 되면 xml로 되어있는데요.
<initialWindow>
      ...
    <systemChrome>none</systemChrome>
이놈이 주석처리 되어있는데 none을 바꿔주고 주석을 풀어봅시다!

그리고 프로젝트이름.mxml파일을 열어서 vbox에 button을 하나 추가해봅시다.
[code]<mx:VBox>
  <mx:Button label="버튼" />
</mx:VBox>
[/code]
한번 실행해봅시다.

사용자 삽입 이미지
기존의 윈도우는 사라지기는 했습니다만.... 뭔가 또다른 윈도우가 생겼네요--;

저것조차도 없애봅시다--;

<initialWindow>
     ....
    <visible>true</visible>

아까 xml파일의 visible을 true로 바꿔줍니다.
그리고 메인 mxml로 돌아와서 WindowedApplication으로 되어있는 가장 최상위태그를 Application으로 바꿔줍니다.
[code]<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

 <mx:VBox>
    <mx:Button label="버튼" />
 </mx:VBox>
</mx:Application>
[/code]
실행해봅시다.
사용자 삽입 이미지

아.....사라졌군요. 근데 닫을 수가 없군요-_-; 닫기, 최대화, 최소화 를 구현해봅시다 ^^
이 예제는 AIR개발자문서에서 제공하는 예제입니다.
[code]<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

 <mx:Script>
  <![CDATA[
   public function minimizeWindow():void
   {
    this.stage.nativeWindow.minimize();
   }

   public function maximizeWindow():void
   {
    this.stage.nativeWindow.maximize();
   }
   
   public function restoreWindow():void
   {
    this.stage.nativeWindow.restore();
   }
   
   public function closeWindow():void
   {
    this.stage.nativeWindow.close();
   }
  ]]>
 </mx:Script>
 <mx:VBox>
  <mx:Button label="Minimize" click="minimizeWindow()"/>
  <mx:Button label="Restore" click="restoreWindow()"/>
  <mx:Button label="Maximize" click="maximizeWindow()"/>
  <mx:Button label="Close" click="closeWindow()"/>
 </mx:VBox>

</mx:Application>
[/code]
stage라는 놈이 최상위에 있느 놈 같은데 거기에서 nativeWindow라 하면 그 자신의 윈도우를 말하는건가요?-_-;
아....잘모르겠네. 어쨌든 저 nativeWindow라는 객체가 그 해당윈도우를 말하는 것 같습니다.
그 객체의 close, maxmize, minimize등의 메소드를 실행하니 해당윈도우가 작동을 하니 ^^

 
Posted by 머드초보

댓글을 달아 주세요

  1. BlogIcon 에이레네 2008.04.12 01:11  댓글주소  수정/삭제  댓글쓰기

    네 맞습니다^^ stage.nativeWindow라고 하면 그 스테이지에 있는 윈도우가 참조됩니다;; 예를 들어 Application.application.stage.nativeWindow 하면 메인 어플리케이션의 윈도우가 참조되게 됩니다... 관련 내용이 AIR_IN_ACTION 2장에 나오니 얼릉 읽어보세요 ㅋㅋㅋ ^^

    • 머드초보 2008.04.14 08:19  댓글주소  수정/삭제

      아하 그렇군요 ^^
      이제 2장 읽으려고 프린트하려구요 ^^
      에이레네님 화이팅입니다 ^^

  2. 머드초보 2008.04.15 19:33  댓글주소  수정/삭제  댓글쓰기

    아...<mx:Application>태그를 사용하지 않아도 윈도우 틀을 없앨 수 있군요. 왜난몰랐지-_-;
    베타 때 예제를 분석해서 그런가 ㅠㅠ
    어쨌든 아래와 같은 방법으로 하면 돼요!
    AIR 디스크립터파일에서
    <systemChrome>none</systemChrome>
    <transparent>true</transparent>
    하고, 본 소스에서는
    <mx:WindowedApplication태그에서 showFlexChrome="false"를 주면됩니다.

  3. 검색자 2009.06.15 21:14  댓글주소  수정/삭제  댓글쓰기

    우아,,, 정말 찾고있었는데
    짱드세요 감사합니다~

    • 머드초보 2009.06.15 23:15  댓글주소  수정/삭제

      크롬 없애는 거 말씀하시는거죠?
      바로 위 댓글 방법으로 사용하세요~ 글에 있는 대로 하지마시고-_-
      방문해주셔서 감사해요~ ^^

  4. 가림토 2009.09.26 20:23  댓글주소  수정/삭제  댓글쓰기

    flex4 베타버전으로 만들어보고 있는데.
    스파크에서 작동이 안되서 여러곳을 찾았는데.
    여기서 방법을 얻은것같습니다.
    감사합니다. ^___^;;

  5. 입문생 2010.06.10 13:55  댓글주소  수정/삭제  댓글쓰기

    아 air로 어플만들려고 크롬없애는 법 찾고있었는데...
    덕분에 해결했습니다~ ^ㅡ^ 감사드려요~ ㅎㅎ
    근데 없애고 나니까 타이틀윈도우창이 움직여지질 않는데...
    원래 이런건가요??; 이부분을 어찌 해결해야할지...ㅠㅠ

    • 머드초보 2010.06.14 12:02  댓글주소  수정/삭제

      아네~^^
      원래 움직이지 않아서 직접 영역을 지정해서 move이벤트를 줘야합니다^^