AIR 初心者ということで、まずは画面の表示から検証してみたいと思います。AIR アプリケーションで作成してみたいと思います。最初の細々とした設定は飛ばして、ソースを記述するところから説明します。(画面を貼るのが...)
ボタンを配置して、イベントハンドラを設定します。
ボタンのイベントに対して、下記のソースを記述します。NativeWindow クラスを使用して実現することが可能です。
<fx:Script> <![CDATA[ protected function button1_clickHandler(event:MouseEvent):void { import flash.display.NativeWindow; import flash.display.NativeWindowInitOptions; // ウィンドウの初期化用の設定 var window_options:NativeWindowInitOptions = new NativeWindowInitOptions(); // ウィンドウを作成 var window:NativeWindow = new NativeWindow(window_options); window.visible=true; } ]]> </fx:Script>
実行結果は下記の通りです。
次に、NativeWindow で生成した画面上にコントロールを配置する方法ですが、少し面倒に感じてしまいました。( AIR ではこれが普通なのでしょうか?)方法は下記の通りです。(他にもっと賢いやり方があるのでしょうか?)
新規の MXML アプリケーションを作成します。作成したアプリケーションの画面を下記のように変更します。
以下のソースを記述することで、生成した NativeWindow に指定した SWF の内容がロードされます。
<fx:Script> <![CDATA[ protected function button1_clickHandler(event:MouseEvent):void { import flash.display.NativeWindow; import flash.display.NativeWindowInitOptions; // ウィンドウの初期化用の設定 var window_options:NativeWindowInitOptions = new NativeWindowInitOptions(); // ウィンドウを作成 var window:NativeWindow = new NativeWindow(window_options); //ローダーを生成 var loader:Loader = new Loader(); //ComponetTest.swfを指定 var url:URLRequest = new URLRequest('ComponentTest.swf'); //ローダーにSWFファイルをロード loader.load(url,null); //NativeWindow の stage に対して、SWF ファイルをロード window.stage.addChild(loader); window.visible=true; } ]]> </fx:Script>
実行結果は下記の通りです。(あら、大きさが無茶苦茶ですね。)
うーん、結構手間がかかりますね。何か他にいい方法がないのでしょうか? (教えて AIR のすごい人!)