Flex 3 SDKのコマンドラインビルド環境を整える
Adobe AIRを含めたFlex関連をちょっと触るだけなら、Flex SDKをコマンドラインから使ってやれば無料で手軽で確実。まあ、普通はIDE環境がいろいろ存在しているのでそっちで良いんだけど、ちょっと違う環境や、Linux(サポート打ち切られたけど)なんかでデバッグ実行したいだけって時に知ってると何かと便利な訳です。
結構簡単ですしね。
基本はAdobe Open SourceなどからFlex SDKをダウンロードして展開するだけ。後はコマンドを2つ知っていればOK。あ、実行にJavaが必要か。
Flex SDKはOSを問いませんが、今回はMacのOS X Lion 10.7です。Adobe AIRアプリの実行を行います。
Javaのインストール
OS X Lion 10.7は標準でJavaが無いのでJavaを入れます。Javaを使おうとするとOSが認識してパッケージのダウンロードとインストールができます。なので、とりあえずコマンドラインでjavaをたたけば、インストールできます。
$ java
Flex SDKの展開
こことかここからダウンロードして解凍します。zipファイルなので通常はダブルクリックで解凍できますが、Macでは失敗します。
後で分かるんですが、アクセス権がおかしくなってるみたいなんですよね。で、どうするかというと、ターミナルからunzipコマンドで解凍します。
$ unzip flex_sdk_3.6a.zip -d 3.6.0
オプションの「-d」で解凍先を指定しないと、カレントフォルダに解凍されるので注意が必要です(<-デスクトップで実行して、大変なことになった人)。
ここで解凍したフォルダを見てみると「frameworks」フォルダにアクセスできないことが分かります。
このままではコンパイルできないので、アクセス権を変更します。階層的にアクセス権がおかしいので、コマンドで一気に変えます。
$ chmod -R 755 3.6.0/frameworks/
これで準備はOKです。
コンパイル
適当にメインのmxmlを用意します。
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"> </mx:WindowedApplication>
amxmlcを使ってコンパイルします。
$ 3.6.0/bin/amxmlc app.mxml
app.swfが生成されます。
ターミナルで文字化けが発生しますがコンパイルは成功します。この文字化けはamxmlcがSJISでメッセージを出力している影響のようです。まあ、メインで開発する訳ではないので基本は無視ですが、次の方法で回避できるので、適時対応する感じでしょうか。
- OSの言語設定を英語にする
- ターミナルの環境設定で文字エンコーデングを日本語(Shift JIS)などに変更する
デバッグ実行
コンパイルできたらadlでデバッグ実行します。Adobe AIRでの実行はアプリケーションディスクリプタを元に実行されるので、ディスクリプタを用意します。これはテンプレートがFlex SDK内にあるため、それをコピーして必要な分だけ改変して使用します。
まずはコピー。
$ cp 3.6.0/templates/air/descriptor-template.xml app-desc.xml
次いで、内容を変更します。「id」、「filename」、「content」を記述すれば実行できるみたいですね。
<?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/1.5.3"> <id>kkAyataka.sample</id> <filename>Sample</filename> <initialWindow> <content>app.swf</content> </initialWindow> </application>
adlからディスクリプタを指定して、デバッグ実行します。
$ 3.6.0/bin/adl app-desc.xml
起動しました。