Apollo SDK を試す
March 20, 2007category: Apollo
Apollo がリリースされた。が、自分の PC の Flex 2 Builder は、試用期間を過ぎてしまい Apollo を試すことができない……と思いきや、コマンドラインツールも提供されているのでそちらで試した。参考にしたのは、Apollo for Adobe Flex Developers Pocket Guide。
開発ツールをインストールする
- Flex 2 SDK と言語パックをダウンロードする
- 解凍後、"C:/Program Files" などに配置する
- Apollo SDK をダウンロードする
- 解凍後、Flex 2 SDK のフォルダに上書きコピーする
- 環境変数に Flex 2 SDK の bin フォルダへのパスを通す
以上で環境設定は完了となる。
Apollo SDK
Apollo SDK には 3 つのコマンドラインツールが含まれる。
- AMXMLC
- MXMLC のラッパ。MXMLC に Apollo 用の引数を渡してコンパイラを走らせる。
- ADL (Apollo Debug Launcher)
- Apollo アプリケーションのランチャ。Apollo アプリケーションをインストールせずに実行できる。
- ADT (Apollo Developer Tool)
- air 形式の Apollo アプリケーションのインストーラを作成する。
swf を使った Apollo アプリケーション作成の流れ
swf を埋め込んだ Apollo アプリケーションを作成する手順は以下のとおり。
- mxml を書き、 AMXMLC で swf をコンパイルする
- アプリケーション設定ファイルを書き、ADL でテストする
- ADT で air パッケージを作成する
HelloWorld.mxml を書く
<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="Hello World" backgroundColor="0xFFCC00">
<mx:Label text="Hello Apollo" fontSize="18" horizontalCenter="0" verticalCenter="0"/>
</mx:ApolloApplication>
上記 MXML をコンパイルして swf を作成する。
amxmlc HelloWorld.mxml
HelloWorld-app.xml を書く
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/apollo/application/1.0.M3" appId="com.oreilly.apollo.gettingStarted.HelloWorld" version="1.0">
<properties>
<name>Hello World</name>
<publisher>Hoge</publisher>
<description>A sample Apollo application.</description>
<copyright>(C) 2007 Hoge. All rights reserved.</copyright>
</properties>
<rootContent systemChrome="standard" transparent="false">
HelloWorld.swf
</rootContent>
</application>
ADL で Apollo アプリケーションとして立ち上げる
adl HelloWorld-app.xml
インストーラを作る
最後に、以下のコマンドでパッケージが作成される。
adt -package HelloWorld.air HelloWorld-app.xml HelloWorld.swf
環境によってはうまくいかない
インストーラを作る部分のみ、会社では成功し、自宅では null が返ってきて失敗する。何かが足りないのかもしれない。
追記
null が返ってきてしまうのは、HelloWorld-app.xml の rootContent の値に空白文字が含まれていたためだった (コメント参照)。
<rootContent systemChrome="standard" transparent="false">
HelloWorld.swf
</rootContent>
ではなく
<rootContent systemChrome="standard" transparent="false">HelloWorld.swf</rootContent>
とすればよい。

comments
疲労コンパイル。
Posted by: c : March 20, 2007 12:33 AM
ふーん。
Posted by: Tanabe : March 20, 2007 01:36 AM
いつも勉強させて貰ってます。こちらでも adt で null が返ってきましたが、HelloWorld-app.xml の swf名内にタブや改行を含めないことで解消しました。
Posted by: kiyo : March 20, 2007 03:55 AM
タグ消えました。<rootContent>swf名</rootContent>内です
Posted by: kiyo : March 20, 2007 03:58 AM
改行や空白を取り除いたら正しく動作しました。
有り難うございます!
Posted by: Tanabe : March 20, 2007 10:58 AM