関連ページ  
メインウインドウをシステムトレイに登録する :【AIR Flex】

自由なウインドウを作成して使用するには、メインウインドウを非表示にして、
2次ウインドウを作成する必要がありますが、その前にメインウインドウとしての
準備として、いくつか設定しておく必要があります。

まず、メインウインドウを非表示にすると、デスクトップから完全に消えてしまうので、
システムトレイに登録する必要があります。
( もし、このまま使用するのであれば、一般的な常駐アプリケーションとなります )

その為には、アイコン画像を登録する必要があるのですが、
まず、メインウインドウにタイトルアイコンを @Embed('icon.png') で埋め込んで、
そのアイコンを転用する方法を以下で説明しています。

最後に、アプリケーションとして機能できるように、システムトレイアイコンに
メニューを実装しています。
タイトルアイコンとタイトル


systemChrome が standard では、タイトルにアイコンは表示されません。
表示させるには、systemChrome を none に変更します
<?xml version="1.0" encoding="utf-8" ?> 
<application xmlns="http://ns.adobe.com/air/application/1.0"> 
	
	<id>airApplication</id> 
	<version>1.0</version> 
	<filename>airApplication</filename> 
	
	<initialWindow> 
		<title>AIR アプリケーション</title> 
		<content>Mainw.swf</content> 
		<x>300</x>
		<y>200</y>
		<width>600</width>
		<height>300</height>
		<systemChrome>none</systemChrome> 
		<transparent>false</transparent> 
		<visible>true</visible> 
		<minimizable>true</minimizable> 
		<maximizable>true</maximizable> 
		<resizable>true</resizable> 
	</initialWindow>

</application>
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
	xmlns:mx="http://www.adobe.com/2006/mxml"

	showFlexChrome="true"

	initialize="initData();"
	creationComplete="initApp1()"
	applicationComplete="initApp2()"

	visible="true"
	usePreloader="true"

	backgroundAlpha="1"

	alwaysInFront="false"

	titleIcon="@Embed('icon.png')"
	title="Flex"
>


メインウインドウを非表示にする
非表示にするには、initialWindow の設定で visible=false にし、
かつ WindowedApplication のプロパティで visible="false" にします
<?xml version="1.0" encoding="utf-8" ?> 
<application xmlns="http://ns.adobe.com/air/application/1.0"> 
	
	<id>airApplication</id> 
	<version>1.0</version> 
	<filename>airApplication</filename> 
	
	<initialWindow> 
		<title>AIR アプリケーション</title> 
		<content>Mainw.swf</content> 
		<x>300</x>
		<y>200</y>
		<width>600</width>
		<height>300</height>
		<systemChrome>none</systemChrome> 
		<transparent>false</transparent> 
		<visible>false</visible> 
		<minimizable>true</minimizable> 
		<maximizable>true</maximizable> 
		<resizable>true</resizable> 
	</initialWindow>

</application>
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
	xmlns:mx="http://www.adobe.com/2006/mxml"

	showFlexChrome="true"

	initialize="initData();"
	creationComplete="initApp1()"
	applicationComplete="initApp2()"

	visible="false"
	usePreloader="true"

	backgroundAlpha="1"

	alwaysInFront="false"

	titleIcon="@Embed('icon.png')"
	title="Flex"
>
しかし、このままではデスクトップ上から完全に消えてしまうので、
システムトレイにアイコンが表示されるようにします。
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
	xmlns:mx="http://www.adobe.com/2006/mxml"

	showFlexChrome="true"

	initialize="initData();"
	creationComplete="initApp1()"
	applicationComplete="initApp2()"

	visible="false"
	usePreloader="true"

	backgroundAlpha="1"

	alwaysInFront="false"

	title="Flex"
	titleIcon="@Embed('icon.png')"
>

<mx:Script>
<![CDATA[

	// *********************************************************
	// initialize
	// *********************************************************
	public function initData():void {

		trace("[App:beforeDisplay]");

		// *********************************************************
		// 表示レイアウトが完成する前に、
		// タイトルのアイコンを Image に転送しておきます
		// initApp1 では正しいビットマップが作成されません
		// *********************************************************
		app_icon.source = Object(this.titleIcon);

	}

	// *********************************************************
	// creationComplete
	// *********************************************************
	private function initApp1():void {

		trace("[App:afterDisplay]");

		// *********************************************************
		// Image に転送されたアイコンを
		// タスクトレイのアイコンとして登録します
		// *********************************************************
		var bmp:BitmapData = new BitmapData(app_icon.width,app_icon.height,false,0xC0C0C0);
		bmp.draw( app_icon,null,null,"normal");
		var iconBitmap:Array = new Array();
		iconBitmap.push( bmp );
		this.nativeApplication.icon.bitmaps = iconBitmap;

	}

	// *********************************************************
	// applicationComplete
	// *********************************************************
	private function initApp2():void {

		trace("[App:start]");


	}
]]>
</mx:Script>

<mx:Image id="app_icon" />


</mx:WindowedApplication>
さらに、このアイコンから終了できるようにメニューを実装します
	// *********************************************************
	// applicationComplete
	// *********************************************************
	private function initApp2():void {

		trace("[App:start]");

		// *********************************************************
		// タスクトレイのアイコンにメニューを追加
		// *********************************************************
		var adobe:String = "http://livedocs.adobe.com/flex/3_jp/langref/";
		var nativeMenu:NativeMenu;
		nativeMenu = new NativeMenu();
		// 終了
		var menuItem:NativeMenuItem = nativeMenu.addItem(new NativeMenuItem("終了"));
		menuItem.addEventListener(flash.events.Event.SELECT,
			function():void {
				// 一応アイコンのビットマップをクリア
				mx.core.Application.application.nativeApplication.icon.bitmaps = [];
				// 終了
				mx.core.Application.application.exit(); 
			}
		);
		// セパレータ
		menuItem = nativeMenu.addItem(new NativeMenuItem("", true));
		// サブメニューを作成
		var nativeSubMenu:NativeMenu = new NativeMenu();
		nativeMenu.addSubmenu( nativeSubMenu, "Adobe Flex 3 リファレンスガイド" );
			// NativeMenu
			menuItem = nativeSubMenu.addItem(new NativeMenuItem("NativeMenu"));
			menuItem.addEventListener(Event.SELECT,
				function():void {
					openUrl( adobe + "flash/display/NativeMenu.html");
				}
			);
			// NativeWindow
			menuItem = nativeSubMenu.addItem(new NativeMenuItem("NativeWindow"));
			menuItem.addEventListener(Event.SELECT,
				function():void {
					openUrl( adobe + "flash/display/NativeWindow.html");
				}
			);
		// 実装
		SystemTrayIcon(this.nativeApplication.icon).menu = nativeMenu;

	}

	// *********************************************************
	// ブラウザで開く
	// *********************************************************
	public function openUrl(url:String):void {
	
		var req:URLRequest = new URLRequest(url);
		navigateToURL(req, "_blank");
	
	}