0

外出先で AIR アプリを動的にコンパイルする方法を探していました。

具体的には、プログラムのタイトルと、コンパイル時に変更されたいくつかの変数が必要です。本質的に同じプログラムの何千ものバージョンを作成するので、手動で作成することは避けたいと思います:)

これはAIRで可能ですか?そうでない場合、Java のようなものでそれを行うことはできますか?

4

1 に答える 1

0

はい、これは Flex SDK の mxml コンパイラを使用して可能です。antmavenなどのビルド ツールの知識が必要です。

  1. Apache ant または Maven を使用してビルド プロセスを自動化します。
  2. Actionscript コンパイラ ディレクティブを使用して、コード内の変数データのプレース ホルダーを定義します。
  3. ビルド スクリプトを変更してビルドをコンパイルし、変数データをコンパイラ引数として渡します。

アプリのバージョン文字列にタイムスタンプやその他の情報を含めるために、ant ビルド スクリプトを使用してこれを行いました。タイムスタンプの例を次に示します...

1. プロジェクトのコンパイラ引数オプションで変数を定義する

構文は次のとおりです。

-define=NAMESPACE::VARIABLE_NAME,'variableValue'

例えば:

-define=APPDATA::TIMESTAMP,"xxx"

これは、開発者が IDE に入れるものです。アプリをコンパイルすると、バージョン文字列に「xxx」が含まれます。自動化されたビルド スクリプトがアプリをコンパイルすると、同様の引数を使用して実際のタイムスタンプが渡されます。

2. コードで変数を参照します。

として使用してStringいますがBoolean、他のプリミティブ型を想定しています。

public var appVersion:String = "MyApp " + APPDATA::TIMESTAMP;

ブール値を使用して条件付きでコードを SWF にコンパイルできます。

-define=CONFIG::DEBUG,true

次に、このコンパイラ ディレクティブでコード ブロックをラップします。true の場合、swf にコンパイルされます。

public function something():int
{
    var a:int = 1;

    CONFIG::DEBUG
    {
        a=2;
    }
    return a;
}

これは非常に便利ですが、一般的な構成ではなく、コンパイル時に本当に必要なことにのみコンパイラ ディレクティブを使用することをお勧めします :)

資力:

于 2012-08-15T23:42:26.787 に答える