首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态编译AIR应用程序

动态编译AIR应用程序
EN

Stack Overflow用户
提问于 2012-08-16 04:33:12
回答 1查看 105关注 0票数 0

我一直在寻找一种在旅途中动态编译AIR应用的方法。

具体地说,我需要程序的标题和在编译时更改的一些变量。我将创建本质上相同的程序的数百个版本,如果不是数千个版本的话,所以我希望避免手动完成:)

在空气中这是可能的吗?如果不能,我可以用类似Java的东西来做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 07:42:27

是的,这可以使用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,我假定使用其他原语类型。

代码语言:javascript
复制
public var appVersion:String = "MyApp " + APPDATA::TIMESTAMP;

您可以使用布尔值有条件地将代码编译到SWF中:

-define=CONFIG::DEBUG,true

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

代码语言:javascript
复制
public function something():int
{
    var a:int = 1;

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

虽然这非常方便,但我建议只对编译时真正需要做的事情使用编译器指令,而不是一般的配置:)

资源:

  • Using conditional compilation
  • mxmlc compiler options
  • flex ant tasks
  • flex mojos maven plugins
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11976829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档