MXML

MXML は,ウィンドウの構成を記述する。こんな感じ。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
                        layout="absolute"
                        title="Hello AIR">
 
    <mx:Script>
        <![CDATA[
            private function hello():void {
                myLabel.text = "Hello AIR!";
            }
        ]]>
    </mx:Script>
 
    <mx:Label id="myLabel" horizontalCenter="0" verticalCenter="0"/>
    <mx:Button id="myButton" label="click" horizontalCenter="0" verticalCenter="20" c lick="hello();"/>
 
</mx:WindowedApplication>

ルートエレメントは WindowedApplication で,これがウィンドウ全体を表す。この例では,他に Label と Button が配置されている。

配置できるのはコントロールとかコンテナとか呼ばれるもの。実体は ActionScript のクラスで,パッケージにまとまっている。わかりやすい一覧表みたいなものは見つからないんだけど,リファレンスのこのあたりに情報がある。

  • mx:Controls パッケージ
  • mx:COntainers パッケージ

Web上の情報とか

ここまで Adobe のページ。ここからは参考にした記事など。

開発ツール

無償の開発ツールとしては,Adobe から2つ配布されている。

  • Adobe AIR SDK
  • Flex 3 SDK

AIR SDK のほうは HTML + JavaScript ベースの開発ツールみたい。今回は Flex ベースの Flex 3 SDK を使う。

どっちも http://www.adobe.com/jp/products/air/tools/ からダウンロードできる……と思ったら,あれ?今見たら Flex 3 SDK が Adobe Flex Builder 3.0.1 Professional(有償,60日間体験版)へのリンクになってる。おかしいな,こないだは Flex 3 SDK だったはずなのに。どこへ行った?

Adobe AIRに手を出した

ブログもOCamlもほったらかし(一応「プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~」は最後まで読んだ)のままだったけど,最近はAdobe AIRに手を出した。

AIR は Adobe Integrated Runtime の略で,RIA(Rich Internet Application)をデスクトップアプリとして実行する環境。しかもクロスプラットフォーム。AIRアプリの開発手法には3つあって:

  • HTML + css + Javascript(Ajax含む)
  • Flash
  • Flex

のどれでも開発が出来る。Flash と Flex がどう違うのかいまいちわかんないんだけど,要するに Webアプリの開発手法をそのまま使えるってことらしい。

で,とりあえず見よう見まねで Hello world じゃなくて Hello AIR を Flex ベースで作ってみた。

HelloAIR.mxml

<?xml version="1.0" encoding="utf-8"?>
 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
                         layout="absolute"
                         title="Hello AIR">
 
   <mx:Script>
     <![CDATA[
       private function hello():void {
         myLabel.text = "Hello AIR!";
       }
     ]]>
   </mx:Script>
 
   <mx:Label id="myLabel" horizontalCenter="0" verticalCenter="0"/>
   <mx:Button id="myButton" label="click" horizontalCenter="0" verticalCenter="20" c lick="hello();"/>
 
 </mx:WindowedApplication>

HelloAIR-app.xml

<?xml version="1.0" encoding="utf-8"?>
 <application xmlns="http://ns.adobe.com/air/application/1.1" minimumPatchLevel="0"> 
   <id>com.websysd.flex.HelloAIR</id>
   <version>1.1</version>
   <filename>HelloAIR</filename>
   <initialWindow>
     <content>HelloAIR.swf</content>
     <systemChrome>none</systemChrome>
     <visible>true</visible>
     <width>400</width>
     <height>200</height>
   </initialWindow>

必要なファイルは:

  • ソースファイル(HelloAIR.mxml)
  • アプリケーション記述ファイル(HelloAIR-app.xml)

の2つ,というか2種類。

ソースを記述する言語にも2つあって,1つは画面構成を記述する MXML,もう1つは動作を記述する ActionScript。HTML と JavaScript の関係と同じだと思えばいい。

アプリケーション記述ファイルには,ウィンドウの大きさとかインストール先とかを書く。アプリの名前に -app をつけたのをファイル名にするのが普通らしい。

コンパイルには amxmlc コマンドを使う。

^o^ >amxmlc HelloAIR.mxml
設定ファイル "C:\usr\Flex3SDK\frameworks\air-config.xml" をロードしています
D:\Documents\24711\My Documents\work\AIR\HelloAIR\HelloAIR.swf (255199 bytes)

これで,HelloAIR.swf ファイルが出来る。

開発中はインストールしなくても実行できるように,adl コマンドがある。adl コマンドにはアプリケーション記述ファイルを引数として与える。

^o^ >adl HelloAIR-app.xml

実行画面(ボタンを押して,メッセージが表示されたところ)

f:id:takatoh:20081102225153j:image

本も買った。

AIRプログラミング入門 1.1日本語版対応

 

AIRプログラミング入門 1.1日本語版対応