Adobe AIR プログラミング講座

 

NativeApplication クラスについて

 


■NativeApplication クラスについて


NativeApplication クラスは、Adobe AIR アプリケーションに関する機能がまとまっています。
 

■NativeApplication オブジェクトを取得する


NativeApplication.nativeApplication プロパティに、「NativeApplication オブジェクト」が格納されています。
 
ここから様々なプロパティやメソッドにアクセスします。
 
NativeApplication オブジェクトを取得する

import flash.desktop.NativeApplication;

var app : NativeApplication = NativeApplication.nativeApplication;
 



アプリケーション情報を取得する

 
 


■アプリケーション記述ファイルを取得


「アプリケーション記述ファイル」を取得するには、applicationDescriptor プロパティを使用します。
 
アプリケーション記述ファイルを取得

import flash.desktop.NativeApplication;

var app:NativeApplication = NativeApplication.nativeApplication;
trace("アプリケーション記述ファイル:\n" + app.applicationDescriptor );
 

■アプリケーションIDを取得


「アプリケーションID」を取得するには applicationID プロパティを使用します。
 
アプリケーションIDを取得

import flash.desktop.NativeApplication;

var app:NativeApplication= NativeApplication.nativeApplication;
trace("アプリケーションID:" + app.applicationID );
 

■発行者IDを取得


「発行者ID」を取得するには publisherID プロパティを使用します。
 
発行者IDを取得

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

var app:NativeApplication = NativeApplication.nativeApplication;
text_field.text = "発行者ID:" + app.publisherID;
 
■Adobe AIR 1.5.3 未満の場合
 
Adobe AIR 1.5.3 未満の場合、AIR ファイルのインストール時に、インストーラーが「発行者 ID」を生成します。
 
このプロパティは ADL 上では取得できません。
 
■Adobe AIR 1.5.3 以降の場合
 
Adobe AIR 1.5.3 以降の場合、「発行者 ID」 は非推奨となりました。「発行者 ID」は、インストーラーから自動的に生成される事はありません。
 
「発行者 ID」は、「アプリケーション記述ファイル」に <publisherID> タグを手動で追加することで埋め込む事が可能です。
 
「発行者 ID」の追加は、Adobe AIR 1.5.3 未満で作成したアプリケーションを、AIR 1.5.3 以降にアップデートする目的でのみ使用するようです。
 
アプリケーション記述ファイルに、publisherID タグを追加する

<?xml version ="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/2.0">

	~略~

	<publisherID>9EA885A8B1B37E8D7AE877C3D31473E1A2278ECC.1</publisherID>

</application>
 



AIR ランタイム情報を取得する

 


■ランタイムのバーションを取得


「ランタイムのバーション」を取得するには runtimeVersion プロパティを使用します。
 
ランタイムのバーションを取得

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

var app:NativeApplication = NativeApplication.nativeApplication;
text_field.text = "ランタイムのバーション:" + app.runtimeVersion;
 

■ランタイムのパッチレベルを取得


「ランタイムのパッチレベル」を取得するには runtimePatchLevel プロパティを使用します。
 
ランタイムのパッチレベルを取得

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

var app:NativeApplication = NativeApplication.nativeApplication;
text_field.text = "ランタイムのパッチレベル:" + app.runtimePatchLevel;
 



ログイン後に AIR アプリを自動実行する

 


■ログイン後の自動実行に対応しているか調べる


ログイン後の自動実行に対応しているか調べるには、NativeApplication.supportsStartAtLogin プロパティを使用します。
 
true であれば、ログイン直後にAIRアプリケーションを自動実行する事が可能です。
 
この確認用のプロパティは、Adobe AIR 2.0 以降で利用可能です。
 
モバイルなどの環境で動作させる場合、ログイン後の自動実行に対応していない事があります。
 
ログイン後の自動実行に対応しているか調べる

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

text_field.text = "ログイン後の自動実行をサポート:" + NativeApplication.supportsStartAtLogin;
 

■ログイン後に AIR アプリを自動実行する


ログイン後に AIR アプリを自動実行するには、startAtLogin プロパティに true をセットします。
 
ログイン後に AIR アプリを自動実行する

import flash.desktop.NativeApplication;

// ログイン後の自動実行に対応している
if(NativeApplication.supportsStartAtLogin){

	var app:NativeApplication = NativeApplication.nativeApplication;

	// ログイン後に AIR アプリを自動実行する
	app.startAtLogin = true;

}
 



AIR アプリ起動時の引数を取得する

 


■AIR アプリ起動時のコマンドライン引数を取得する


コマンドライン引数を取得するには、InvokeEvent.INVOKE イベントを使用します。
 
引数から、InvokeEvent オブジェクトが得られます。
 
すでに引数が渡されている場合でも、関数を登録した時点でまとめて取得できます
 
コマンドライン引数を取得する

import flash.desktop.NativeApplication;
import flash.events.InvokeEvent;

var app:NativeApplication = NativeApplication.nativeApplication;

// コマンドライン引数を取得するイベント
app.addEventListener(InvokeEvent.INVOKE , function (e:InvokeEvent):void{
 
});
 

■InvokeEvent クラスのプロパティについて

 
InvokeEvent クラスが持つ、読み取り専用のプロパティの一覧です。
 
プロパティ名 説明
arguments Array 引数データ(文字列が格納された配列)
currentDirectory File カレントディレクトリ情報
reason String 起動理由について(Adobe AIR 1.5.1以降)
 
■起動理由について(reason プロパティ)(Adobe AIR 1.5.1以降)
 
起動理由として、以下の文字列が格納されています。
 
文字列 説明
"LOGIN" ログイン後に AIR アプリが自動実行された
"STANDARD" その他の理由
 
取得例です。
 
InvokeEvent オブジェクトから得られる情報を出力する

import flash.text.TextField;
import flash.desktop.NativeApplication;
import flash.events.InvokeEvent;
import flash.filesystem.File;

// テキストフィールドを作成し、ステージ全体に配置
var text_field:TextField = new TextField();
text_field.width = stage.stageWidth;
text_field.height = stage.stageHeight;
stage.addChild(text_field);

var app:NativeApplication = NativeApplication.nativeApplication;

// コマンドライン引数を取得するイベント
app.addEventListener(InvokeEvent.INVOKE , function (e:InvokeEvent):void{

	var i:int;
	var num:int;
	var str:String = "";

	// 引数データを出力
	var arguments:Array = e.arguments;
	num = arguments.length;
	str += "[引数]\n";
	for(i=0;i < num;i++){
		str += "[" + i + "]" + " " + arguments[i] + "\n";
	}

	// カレントディレクトリ情報を出力
	var current_dir:File = e.currentDirectory;
	str += "\n[カレントディレクトリ]\n";
	str += current_dir.nativePath + "\n";

	// 起動理由を出力
	var reason:String = e.reason;
	str += "\n[起動理由]\n";
	str += reason + "\n";

	text_field.text = str;
});
 
 


■ブラウザから、AIR アプリ起動時に渡される引数を取得する


ブラウザから AIR アプリ起動時に渡される引数を取得するには、BrowserInvokeEvent.BROWSER_INVOKE イベントを使用します。
 
引数から、BrowserInvokeEvent オブジェクトが得られます。
 
すでに引数が渡されている場合でも、関数を登録した時点でまとめて取得できます
 
ブラウザから、AIR アプリケーションを起動する方法は、こちらで解説しています。
 
ブラウザから AIR アプリ起動時に渡される引数を取得する

import flash.desktop.NativeApplication;
import flash.events.BrowserInvokeEvent;

var app:NativeApplication = NativeApplication.nativeApplication;

// ブラウザから AIR アプリ起動時に渡される引数を取得するイベント
app.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE , function (e:BrowserInvokeEvent):void{
 
});
 

■BrowserInvokeEvent クラスのプロパティについて

 
BrowserInvokeEvent クラスが持つ、読み取り専用のプロパティの一覧です。
 
プロパティ名 説明
arguments Array 引数データ(文字列が格納された配列)、ブラウザから引数の指定が無い場合は null
isHTTPS Boolean 「HTTPS URL スキーム」を使用している場合は true、それ以外は false
isUserEvent Boolean マウスクリックなどのユーザーの操作を経て起動したか
sandboxType String サンドボックスタイプ
securityDomain String セキュリティドメイン情報
 
■サンドボックスタイプ(sandboxType プロパティ)
 
サンドボックスタイプとして、Security.* 定数が定義されています。
 
定数 文字列 説明
Security.LOCAL_TRUSTED "localTrusted" 信頼できるファイルとして「Flash Player 設定マネージャ」か、"FlashPlayerTrust" 構成ファイルにより登録されています。
Security.LOCAL_WITH_FILE "localWithFile" ローカル上で動作しています。「ローカルファイルにのみアクセスする」が選択されています。
Security.LOCAL_WITH_NETWORK "localWithNetwork" ローカル上で動作しています。「ネットワークにのみアクセスする」が選択されています。
Security.REMOTE "remote" インターネット上で動作しています。
Security.APPLICATION "application" AIR アプリケーション上で動作しています。
 
取得例です。
 
BrowserInvokeEvent オブジェクトから得られる情報を出力する

import flash.text.TextField;
import flash.desktop.NativeApplication;
import flash.events.BrowserInvokeEvent;
import flash.filesystem.File;

// テキストフィールドを作成し、ステージ全体に配置
var text_field:TextField = new TextField();
text_field.width = stage.stageWidth;
text_field.height = stage.stageHeight;
stage.addChild(text_field);

var app:NativeApplication = NativeApplication.nativeApplication;

// ブラウザから AIR アプリ起動時に渡される引数を取得するイベント
app.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE , function (e:BrowserInvokeEvent):void{

	var i:int;
	var num:int;
	var str:String = "";

	// 引数データを出力
	var arguments:Array = e.arguments;
	if(arguments){
		num = arguments.length;
		str += "[引数]\n";
		for(i=0;i < num;i++){
			str += "[" + i + "]" + " " + arguments[i] + "\n";
		}
	}

	// https スキーム情報を出力
	str += "\n[https スキーム]\n" + e.isHTTPS + "\n";

	// ユーザーイベント情報を出力
	str += "\n[ユーザーイベント]\n" + e.isUserEvent + "\n";

	// サンドボックスタイプ情報を出力
	str += "\n[サンドボックスタイプ]\n" + e.sandboxType + "\n";

	// セキュリティドメイン情報を出力
	str += "\n[セキュリティドメイン]\n" + e.securityDomain + "\n";


	text_field.text = str;
});
 



AIR アプリケーションを終了する

 


■プログラムから AIR アプリケーションを終了する


プログラムから AIR アプリケーションを終了するには、exit() メソッドを使用します。
 
エラーコードを通知したい場合、引数に好きな数値を int 型で指定します。(デフォルトは 0)
 
AIR アプリケーションを終了する

import flash.desktop.NativeApplication;

var app:NativeApplication = NativeApplication.nativeApplication;

// AIR アプリケーションを終了する
app.exit(0);
 

■すべてのウィンドウが閉じられた時点で AIR アプリケーションを終了する


「すべてのウィンドウが閉じられた時に、AIR アプリケーションを終了する」ように設定するには、autoExit プロパティに true をセットします。
 
true の場合、「すべてのウィンドウが閉じられた」時点で AIR アプリケーションが終了します。
 
false の場合、すべてのウィンドウが閉じられても AIR アプリケーションは終了しません。
 
任意のタイミングで、exit() メソッドを呼び出して、終了する必要があります。
 
すべてのウィンドウが閉じられた時に、AIR アプリケーションを終了するように設定する

import flash.display.NativeWindow;
import flash.desktop.NativeApplication;

// ネイティブウィンドウが利用可能
if(NativeWindow.isSupported){

	var app:NativeApplication = NativeApplication.nativeApplication;

	// すべてのウィンドウが閉じられた時に自動終了するかを設定
	app.autoExit = true;

}
 

■AIR アプリケーションが終了する瞬間を調べる


AIR アプリケーションが終了する瞬間を調べるには、Event.EXITING イベントを使用します。
 
AIR アプリケーションの終了をキャンセルしたい場合は、引数から得られる Event オブジェクトの preventDefault() メソッドを実行します。
 
AIR アプリケーションが終了する瞬間を調べる

import flash.events.Event;
import flash.desktop.NativeApplication;

var app:NativeApplication = NativeApplication.nativeApplication;

// AIR アプリケーションが終了中に実行されるイベント
app.addEventListener(Event.EXITING , function (e:Event):void{

	// AIR アプリケーションの終了をキャンセルする
	e.preventDefault();

});
 
exit() メソッドを呼び出した場合、Event.EXITING イベントは呼び出されません。
 
■ウィンドウベースのアプリケーションで終了を検出する
 
ウィンドウベースのアプリケーションで、終了を検出したい場合は、Event.CLOSING イベントを使用します。
 
Event.CLOSINGイベントについては、こちらで解説しています。
 
Event.CLOSING イベントを使用すると、ウィンドウが閉じられる処理をキャンセルすることができます。
 
Event.EXITING イベントが実行されるタイミングだと、ウィンドウの破棄が完了しています。
 
AIR アプリケーションの終了をキャンセルしても、ウィンドウの復旧ができません。
 



AIR アプリとファイル拡張子を関連付ける

 


■ファイル拡張子の関連付けに対応しているか調べる


ファイル拡張子の関連付けに対応しているか調べるには、NativeApplication.supportsDefaultApplication プロパティを使用します。
 
true であれば、ファイル拡張子の関連付けの利用が可能です。
 
この確認用のプロパティは、Adobe AIR 2.0 以降で利用可能です。
 
モバイルなどの環境で動作させる場合、ファイル拡張子の関連付けに対応していない事があります。
 
ファイル拡張子の関連付けに対応しているか調べる

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

text_field.text = "ファイル拡張子の関連付けをサポート:" + NativeApplication.supportsDefaultApplication;
 

■関連付けしたいファイルの拡張子名を宣言する

 
関連付けしたいファイルの拡張子名は、あらかじめ宣言しておく必要があります。
 
■Adobe Flash を使って設定する
 
Adobe AIR の設定画面を利用して編集します。
 
 
名前には、好きなファイルタイプ名を設定します。(英数字、ピリオド、38文字まで)
 
拡張子には、好きな拡張子名を設定します。(英数字、38文字まで)
 
"説明" には、好きなファイル名の説明を設定します。
 
"コンテンツの種類" には、好きな Content-Type (MIME タイプ) を設定します。
 
■アプリケーション記述子ファイルを直接編集する
 
アプリケーション記述子ファイルの <fileTypes> タグを編集する例です。
 
アプリケーション記述ファイルに、fileTypes タグを追加する

<?xml version ="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/2.0">

	~略~

	<fileTypes>
		<fileType>
			<name>TestExtension</name>
			<extension>testextension</extension>
			<description>動作テスト検証用の拡張子</description>
			<contentType>application/test</contentType>
			<icon>
			        <image16x16>FileTypeIconsForAIRPublish/icon16.png</image16x16>
			        <image32x32>FileTypeIconsForAIRPublish/icon32.png</image32x32>
			        <image48x48>FileTypeIconsForAIRPublish/icon48.png</image48x48>
			        <image128x128>FileTypeIconsForAIRPublish/icon128.png</image128x128>
			</icon>
		</fileType>

		<fileType>
			<name>TestExtension2</name>
			<extension>testextension2</extension>
			<description>動作テスト検証用の拡張子2</description>
			<contentType>application/test2</contentType>
		</fileType>

	</fileTypes>
</application>
 
<name> には、好きなファイルタイプ名を設定します。(英数字、ピリオド、38文字まで)
 
<extension> には、好きな拡張子名を設定します。(英数字、38文字まで)
 
<description> には、好きなファイル名の説明を設定します。
 
<contentType> には、好きな Content-Type (MIME タイプ) を設定します。
 

■ファイル拡張子の関連付けを登録する


ファイル拡張子の関連付けを登録するには、setAsDefaultApplication() メソッドを使用します。
 
引数に、関連付けたいファイルの拡張子名を、文字列で指定します。
 
AIR アプリケーションに、"*.testextension" ファイルを関連付ける

import flash.events.Event;
import flash.desktop.NativeApplication;

// ファイル拡張子の関連付けに対応している
if(NativeApplication.supportsDefaultApplication){

	var app:NativeApplication = NativeApplication.nativeApplication;

	// AIR アプリケーションに、"*.testextension" ファイルを関連付ける
	app.setAsDefaultApplication("testextension");

}
 

■ファイル拡張子の関連付けを解除する


ファイル拡張子の関連付けを解除するには、removeAsDefaultApplication() メソッドを使用します。
 
引数に、関連付けを解除したいファイルの拡張子名を、文字列で指定します。
 
"*.testextension" ファイルを関連付けを解除する

import flash.events.Event;
import flash.desktop.NativeApplication;

// ファイル拡張子の関連付けに対応している
if(NativeApplication.supportsDefaultApplication){

	var app:NativeApplication = NativeApplication.nativeApplication;

	// "*.testextension" ファイルの関連付けを解除する
	app.removeAsDefaultApplication("testextension");

}
 

■ファイル拡張子の関連付けが登録済みであるか調べる


ファイル拡張子の関連付けが登録済みであるかを調べるには、isSetAsDefaultApplication() メソッドを使用します。
 
引数に、調べたいファイルの拡張子名を、文字列で指定します。
 
登録済みである場合、true が得られます。
 
"*.testextension" ファイルを関連付けを解除する

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

// ファイル拡張子の関連付けに対応している
if(NativeApplication.supportsDefaultApplication){

	var app:NativeApplication = NativeApplication.nativeApplication;

	// "*.testextension" ファイルの関連付けが登録済みか調べる
	text_field.text = "関連付け済み:" + app.isSetAsDefaultApplication("testextension");

}
 

■現在関連付けられている実行ファイルのパス名を取得する


現在関連付けられている実行ファイルのパス名を取得するには、getDefaultApplication() メソッドを使用します。
 
引数に、調べたいファイルの拡張子名を、文字列で指定します。
 
何らかの実行ファイルに関連付けされている場合、「実行ファイルのパス名」が文字列で得られます。
 
関連付けがない場合、null が得られます。
 
"*.testextension" ファイルと関連付けられている実行ファイルのパス名を取得する

import flash.text.TextField;
import flash.desktop.NativeApplication;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

// ファイル拡張子の関連付けに対応している
if(NativeApplication.supportsDefaultApplication){

	var app:NativeApplication = NativeApplication.nativeApplication;

	// "*.testextension" ファイルと関連付けられている実行ファイルのパス名を取得
	text_field.text = "現在関連付けられている実行ファイルのパス名:" + app.getDefaultApplication("testextension");

}
 



ユーザーが操作していないアイドル状態か調べる

 


■アイドル状態と判断する時間を設定する


ユーザーが操作をしなくなってから、アイドル状態であると判断するまでの時間を設定するには、idleThreshold プロパティを使用します。
 
整数指定で、単位は秒です。デフォルト値は 300です。(5分)
 
「5 ~ 86400」以外の値を指定するとエラーとなります。(5 秒 ~ 1 日)
 
アイドル状態と判断するまでの時間を 60 秒に設定する

import flash.desktop.NativeApplication;

var app:NativeApplication = NativeApplication.nativeApplication;

// アイドル状態とみなすまでの時間を設定
app.idleThreshold = 60;
 

■アイドルに関するイベントについて

 
「idleThreshold プロパティで指定した時間が経過し、アイドルの状態となった」瞬間を調べるには、LEvent.USER_IDLE イベントを使用します。
 
「ユーザーが操作を行い、アイドル状態から復帰した」瞬間を調べるには、LEvent.USER_PRESENT イベントを使用します。
 
アイドル状態であるかを調べる

import flash.events.Event;
import flash.desktop.NativeApplication;

var app:NativeApplication = NativeApplication.nativeApplication;

// アイドル状態とみなすまでの時間を設定
app.idleThreshold = 5;

// アイドル状態になった瞬間に実行されるイベント
app.addEventListener(Event.USER_IDLE , function (e:Event):void{

	trace("アイドル状態へ");

});

// アイドル状態から復帰した瞬間に実行されるイベント
app.addEventListener(Event.USER_PRESENT , function (e:Event):void{

	trace("アイドル状態から復帰");

});
 



グローバルアプリケーションメニューを使用する

 


■グローバルアプリケーションメニューに対応しているか調べる


グローバルアプリケーションメニューに対応しているか調べるには、NativeApplication.supportsMenu プロパティを使用します。
 
true であれば、グローバルアプリケーションメニューに対応しています。
 
Macintosh で利用できます。
 
グローバルアプリケーションメニューをサポートしているか調べる

import flash.desktop.NativeApplication;
import flash.text.TextField;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);

text_field.text = "グローバルアプリケーションメニューのサポート:" + NativeApplication.supportsMenu;
 

■グローバルアプリケーションメニューを表示する


グローバルアプリケーションメニューを表示するには、menu プロパティを使用します。
 
menu プロパティに、NativeMenu オブジェクトを渡します。
 
NativeMenu クラスの使い方については、こちらで解説しています。
 
グローバルアプリケーションメニューを表示する

import flash.desktop.NativeApplication;
import flash.display.NativeMenu;
import flash.display.NativeMenuItem;
import flash.events.Event;

// グローバルアプリケーションメニューをサポートしている
if(NativeApplication.supportsMenu){

	// ------------------------------------------------------------
	// サブ用メニューを作成
	// ------------------------------------------------------------
	// NativeMenu オブジェクトを作成
	var menu_child:NativeMenu = new NativeMenu();

	// 「サブアイテム0」を作成し、最後尾に登録
	var menu_child_item_0:NativeMenuItem = new NativeMenuItem("サブアイテム0");
	menu_child.addItem(menu_child_item_0);

	// 「サブアイテム1」を作成し、最後尾に登録
	var menu_child_item_1:NativeMenuItem = new NativeMenuItem("サブアイテム1");
	menu_child.addItem(menu_child_item_1);


	// ------------------------------------------------------------
	// ルート用メニューを作成
	// ------------------------------------------------------------
	// NativeMenu オブジェクトを作成
	var menu:NativeMenu = new NativeMenu();

	// メニューが選択されたときに呼び出されるイベント
	menu.addEventListener(Event.SELECT , function (e:Event):void{
		// 選択されたメニューアイテム
		var menu_item:NativeMenuItem = e.target as NativeMenuItem;
		trace(menu_item.label);
	});

	// 「ルートアイテム0」を作成し、最後尾に登録
	var menu_item_0:NativeMenuItem = new NativeMenuItem("ルートアイテム0");
	menu.addItem(menu_item_0);

	// 「ルートアイテム1」を作成し、最後尾に登録
	var menu_item_1:NativeMenuItem = new NativeMenuItem("ルートアイテム1");
	menu.addItem(menu_item_1);

	// 「ルートアイテム2」を作成し、最後尾に登録
	var menu_item_2:NativeMenuItem = new NativeMenuItem("ルートアイテム2");
	menu.addItem(menu_item_2);

	// サブメニューとして登録
	menu_item_2.submenu = menu_child;


	// ------------------------------------------------------------
	// グローバルアプリケーションメニューを表示
	// ------------------------------------------------------------
	var app:NativeApplication = NativeApplication.nativeApplication;

	// ネイティブアプリケーションに、ネイティブメニューを登録する
	app.menu = menu;

}