Apollo SDK を試す

March 20, 2007category: Apollo 

Apollo がリリースされた。が、自分の PC の Flex 2 Builder は、試用期間を過ぎてしまい Apollo を試すことができない……と思いきや、コマンドラインツールも提供されているのでそちらで試した。参考にしたのは、Apollo for Adobe Flex Developers Pocket Guide

開発ツールをインストールする

  1. Flex 2 SDK と言語パックをダウンロードする
  2. 解凍後、"C:/Program Files" などに配置する
  3. Apollo SDK をダウンロードする
  4. 解凍後、Flex 2 SDK のフォルダに上書きコピーする
  5. 環境変数に 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 アプリケーションを作成する手順は以下のとおり。

  1. mxml を書き、 AMXMLC で swf をコンパイルする
  2. アプリケーション設定ファイルを書き、ADL でテストする
  3. 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 (5)

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