动态编译AIR应用程序

时间:2012-08-15 20:33:12

标签: air adobe

我一直在寻找一种动态编译AIR应用程序的方法。

具体来说,我需要程序的标题,并在编译时更改了几个变量。我将创建数百个(如果不是数千个)基本上相同程序的版本,所以我想避免手工操作:)

AIR可以实现吗?如果没有,我可以用Java这样的东西吗?

1 个答案:

答案 0 :(得分:0)

是的,这可以使用Flex sdk中的mxml编译器。它需要一些构建工具的知识,如antmaven

  1. 使用apache ant或maven自动构建过程。
  2. 使用Actionscript编译器指令为代码中的变量数据定义占位符。
  3. 修改构建脚本以编译构建,并将变量数据作为编译器参数传递
  4. 我使用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;
    }
    

    虽然这非常方便,但我建议仅在编译时使用编译器指令,而不是一般配置:)

    资源: