このエントリでFlex 3 SDKを導入してAIRプログラミングを開始してみたのですが、意外と包括的なイントロが無いようなので記しておこうと思います。Mac OS Xを除く各種UNIX系では現状対応するAIRはないのでAIRは導入出来ませんが、Flex 3 SDKの設定はMac OS Xでの場合とほぼ同一です。
前提
解説する上で、いくつか前提を設けさせていただきたいと思います。ただし、この前提が関係するところでは適宜、この条件以外の場合についても解説します。
- プラットフォームはMac OS X (10.5)。
- システム全体ではなく、特定ユーザのみで使用する。今回はflexuserユーザが使用する。
- プログラミングは任意のエディタで行い、コマンドラインでコンパイル、パッケージングする。
ソフトウェアの入手
始めにプログラミング環境および実行環境を整える必要があります。以下に開発環境となるFlex 3 SDK(AIR SDK含む)、実行環境であるAdobe AIRの入手先を示します。
- Flex 3 SDK
- http://www.adobe.com/go/flex3_sdk
- AIR
- http://get.adobe.com/air/
Flex 3 SDKはページ下部にある"Flex 3.0 SDK"の項でダウンロード出来ます。"Adobe Flex 3.0 SDK License"に同意されましたらダウンロードしてください。同様にAIRも該当ページの"Download now"でダウンロード出来ます。
インストール
Flex 3 SDKはPKZIP形式で圧縮されていますので何らかのアーカイバで展開します。Flex 3 SDKはJavaで記述されていてマルチプラットフォームとなっており、システム固有のインストーラのようなものはありません。ですので用途に応じて自由に設置してかまいません。複数ユーザで共用する場合、Unix系であれば/usr/以下とか、WindowsであればC:\以下とかでしょうか。
今回はプラットフォームがMac OS Xで、ユーザflexuserのみ限定です。ホームディレクトリは/Users/以下にありますので、Flex 3 SDKを/Users/flexuser/flex_3_sdk/に設置します。Linuxであれば/Usersを適宜/homeに読み替えれば問題ないと思います。
次にAIRをインストールします。今回はMac OS X上という事で、Macintosh版のディスクイメージを想定します。ダウンロードしたこのディスクイメージをマウントすると"Adobe AIR Installer.app"というインストーラがありますのでこれを実行し指示に従えばよいです。
パスの設定
Flex 3 SDKはコマンドラインのコンパイラです。通常のswfを生成するコンパイラはmxmlc、AIR用のswfを生成するコンパイラはamxmlcというコマンド名です。今回はシェル起動時にそのまま使えるようパスを通します。名前の衝突等、問題があれば必要ありません。
今回はホームディレクトリの.profileを編集してパスを設定します。他のUNIX環境によっては違う可能性もあります。.profileのどこかに以下の行を追加します。
export PATH=/Users/flexuser/flex_sdk_3/bin:$PATH
上記はMac OS X 10.4/10.5で標準のシェルであるbashの場合で、シェルが異なれば記法が異なります。例えばcshであれば、
setenv PATH /Users/flexuser/flex_sdk_3/bin:$PATH
のようになります。Windowsの場合はマイコンピュータのプロパティの方で設定可能かと思います。
.profileは単なるシェルスクリプトで、編集しただけでは適用されません。以下の行をターミナルで実行します。
$ ./.profile
きちんと実行パスが設定されたかどうかを確認する為に、試しにmxmlcを実行します。"Error: a target file must be specified"のような旨が出力されれば成功です。
AIRアプリケーション生成準備
適当なMXMLを用意し、AIRアプリケーションを生成してみます。例として以下にhello.mxmlというMXMLコードを示します。
<?xml version="1.0" encoding='utf-8'?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Text text="Hello." />
<mx:Button label="Button1" id="button1" />
<mx:Button label="Button2" id="button2" />
<mx:Button label="Button3" id="button3" />
</mx:WindowedApplication>
hello.mxmlは単純なアプリケーションで、ウィンドウの中に"Hello."と書かれたラベルおよび3つのボタンを表示するだけです。XMLとして階層的に記述されています。
次に、このhello.mxmlをAIR用にコンパイルします。次のコマンド、
$ amxmlc hello.mxml
を実行すると、hello.swfが生成されるかと思います。ちなみに、AIR用ではなくWeb上などでの単なるFlashと同様のものを生成する場合、
$ mxmlc hello.mxml
を実行します。
次に、AIRアプリケーションの場合、そのアプリケーションの情報を記述するADF(Application Descriptor File)とよばれるXMLファイルを用意する必要があります。例として以下にhello-app.xmlというADFを示します。
<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/1.0" minimumPatchLevel="1047">
<id>net.memorize-being.flex-air.hello</id>
<name>Hello</name>
<version>1.0</version>
<filename>hello</filename>
<description>Hello first application</description>
<copyright>(c) 2008 </copyright>
<initialWindow>
<content>hello.swf</content>
<title>Hello</title>
<systemChrome>none</systemChrome>
<transparent>true</transparent>
<visible>true</visible>
<minimizable>true</minimizable>
<maximizable>false</maximizable>
<resizable>false</resizable>
<x>150</x>
<y>150</y>
</initialWindow>
<installFolder>memorize-being/Hello</installFolder>
<programMenuFolder>memorize-being/Hello</programMenuFolder>
<customUpdateUI>false</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
</application>
重要な要素のみ解説します。初めにid要素は、このアプリケーションの識別子を示します。これはこのアプリケーションのアップデートなどに使われますので、他と重複してはいけません。この例ではこのサイトのドメインを利用しnet.memorize-being.flex-air.helloとしていますが、この形式に従う必要は無く、特にテスト用途であれば自由で結構です。
次にinitialWindow要素はこのアプリケーション起動時に呼び出されるウィンドウ(=swfファイル)を示します。この中ではswfファイル名やウィンドウタイトル、形態などを指定します。
最後にinstallFolder要素ではインストール先フォルダ、programMenuFolder要素ではプログラムメニュー(Windowsでいうところのスタートメニュー)内フォルダを指定します。AIRアプリケーションは生成時は.airというパッケージになりますが、それを各プラットフォームでインストールすると、Mac OS Xでは.app、Windowsでは.exeなど、そのプラットフォームネイティブの実行形式でラッピングされます。インストール先フォルダにその実行形式が格納され、ユーザはプログラムメニュー内フォルダから実行する事となります。
AIRアプリケーションの生成
実際にAIRアプリケーションのパッケージを生成します。ですがその前に、生成前でも実行することが可能なので実際に試してみます。以下のコマンド、
$ adl hello-app.xml
を実行し、次のようなウィンドウが現れたら成功です。
Helloアプリケーションのウィンドウ
次に、パッケージを生成する場合、セキュリティの問題によりディジタル証明書を使ってディジタル署名をする必要があります。公的なディジタル証明書を入手するのは大変ですが、勝手に証明書を発行する事も出来ます。ただし、この証明書はCAにより認証されていないためインストール時に警告が表示されます。次のコマンドで証明書"hello.pfx"を生成します。
$ adt -certificate -cn <証明書名> 1024-RSA hello.pfx <パスワード>
<証明書名>および<パスワード>には任意の文字列を入れてください。特にパスワードは次のステップで使用するので記憶しておいてください。1024-RSA、つまり鍵長1024ビットですが、2048ビットにする事も可能です。
ついに、全ての準備が整いましたので、AIRアプリケーションのパッケージを生成します。生成するパッケージ名を"hello.air"とすると以下のようなコマンドになります。
adt -package -storetype pkcs12 -keystore hello.pfx hello.air hello-app.xml hello.swf
上記コマンドはいくつかの部分に分けて理解する事が出来ます。先頭の"adt -package"はパッケージを生成するコマンドそのものです。
次に、"-storetype pkcs12 -keystore hello.pfx"はディジタル署名に関するオプションで、ディジタル証明書がhello.pfxで、形式がPKCS#12であることを示しています。
その後の"hello.air hello-app.xml"は順に、生成パッケージ名、ADFファイル名を示しています。順番はこの通りである必要があります。
それ以降、この場合の"hello.swf"はこのパッケージに含めるファイル一覧を示します。アイコンを指定する場合はアイコンの格納されたフォルダを、複数ウィンドウを持つのであれば複数swfファイルを連ねる事になるかと思います。成功すれば、次の画像のようにhello.airが生成されているはずです。
hello.airが新たに現れている。
生成されたパッケージのテスト
前項で生成したパッケージを実際にテストしてみます。初めに、hello.airを開くとAIR Application Installerが起動するので、指示に従ってインストールします。"Start application after installation"のチェックを入れておくと、インストール終了後にAIRアプリケーションが起動します。
次に、どのようにインストールされているかを確認してみます。hello-app.xml(ADF)で標準のインストール先を"memorize-being/Hello"にしましたので、Mac OS Xでは標準で/Applications/memorize-being/Helloにhello.appが格納されているかと思います。また、このhello.appを実行すれば、先に示した、実行ウィンドウと同様の画面が現れるはずです。
あとがき
ある程度細かく書こうと思っていたら随分長くなったような気がします。ですが不足部分やむしろ冗長な部分があるかもしれません。
また、記述してみて改めて思ったのは、Flex 3 SDKにしろAIRにしろOS固有部分が少なくマルチプラットフォームになっているんだな、ということです。特にFlex 3 SDKについてパス設定を行ってしまえば、基本的にその先はOSごとで差異がありません。Javaの威力とAdobeの努力の賜物だと思う次第です。
カテゴリ
トラックバック
このブログ記事を参照しているブログ一覧: UNIX(Mac OS X)におけるFlex 3 SDKによるAIRプログラミング 環境設定
このブログ記事に対するトラックバックURL: http://www.memorize-being.net/x/mt-engine/mt-tb.cgi/46
ずーっとやろうやろうで、なぁなぁになっていたASをやるために ・Flex SDK ・Air をMacにインストールしてみた。 参考にしたのは、 UNIX... 続きを読む


コメントする