外出先で AIR アプリを動的にコンパイルする方法を探していました。
具体的には、プログラムのタイトルと、コンパイル時に変更されたいくつかの変数が必要です。本質的に同じプログラムの何千ものバージョンを作成するので、手動で作成することは避けたいと思います:)
これはAIRで可能ですか?そうでない場合、Java のようなものでそれを行うことはできますか?
はい、これは Flex SDK の mxml コンパイラを使用して可能です。antやmavenなどのビルド ツールの知識が必要です。
アプリのバージョン文字列にタイムスタンプやその他の情報を含めるために、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;
}
これは非常に便利ですが、一般的な構成ではなく、コンパイル時に本当に必要なことにのみコンパイラ ディレクティブを使用することをお勧めします :)
資力: