前回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、コントローラを作ってみるようかな。