AIR: 複数Windowを作成

前回Flex4&AIRで単一Windowを表示しました。
今回は複数Windowを作成してみます。

mxmlファイルではWindowedApplicationからApplicationに変更。ActionScriptでWindowを作成するのでスクリプトを読み込み。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               applicationComplete="init()">
    <fx:Script source="MultiWindow.as"/>
</s:Application>

MultiWindow.asではinitメソッドとopenWindowメソッドを作成。openWindowではWindowとButtonを作成してButtonをWindowに配置。

import spark.components.Window;
import spark.components.Button;
import spark.components.Group;
 
private var window:Window = null;
 
private function openWindow(event:MouseEvent):void {
    window = new Window();
    window.width = 300;
    window.height = 300;
    window.title = "Test";
    var opnBtn:Button = new Button();
    opnBtn.x = 10;
    opnBtn.y = 10;
    opnBtn.label = "Open";
    opnBtn.addEventListener(MouseEvent.CLICK, openWindow);
    window.addElement(opnBtn);
    window.open(true);
}
 
private function init():void {
    openWindow(null);
}

コンパイルして実行するとはじめにWindowが一つ表示され、そのWindowのOpenボタンをクリックすると新しいWindowが表示されました。

このコードでは一つのwindow変数に次々に新しいWindowインスタンスが代入されるので、Closeボタンを付けてみたら案の定最後に作成したWindowだけしか閉じることができませんでした。

次はMVCのC、コントローラを作ってみるようかな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です