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

现在用这个编译器指令包装代码块,如果为真,它将被编译到 swf 中:

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

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

虽然这很方便,但我建议仅将编译器指令用于您在编译时真正需要做的事情,而不是用于一般配置:)

资源:

于 2012-08-15T23:42:26.787 回答