我正在尝试使用Flex Compile Time Constants来包含构建SWF的日期和时间(源代码管理版本/时间戳,如SVN:关键字不足以满足我们的需求,我们需要知道实际的构建时间,而不是提交时间)。
我尝试过使用actionscript (就像文档建议的那样):
-define+=COMPILE::Timestamp,"new Date()"但这给出了“配置值的初始化器必须是编译时间常量”
我尝试将其放到shell中并使用date命令(使用各种单引号和双引号配置),例如:
-define+=COMPILE::Timestamp,`date +%Y%m%d%H%M%S` 我只能让它使用简单的字符串和简单的常量表达式(例如,我可以做4-2,它在运行时将是2。但是我不能让它做任何事情,在我声明定义的时候,这些值是不明确知道的。
有人做过这样的事情吗?
发布于 2011-01-02 02:44:28
我也遇到了同样的问题,最终以using this blog post作为起点。对我来说效果很好。只需将类的一小部分更新为flex4。从编译后的swf中提取日期。
发布于 2010-02-21 12:59:57
问题的关键很可能在Adobe引用编译时常量的以下语句中:常量可以是布尔值、字符串或数字,也可以是可以在编译时在ActionScript中求值的表达式。
我假设时间戳在编译时不可用。
但是,您可以尝试使用字符串(如下所示)
public function GetUnixTime():String{
var myDate:Date = new Date();
var unixTime:Number = Math.round(myDate.getTime()/1000);
return unixTime.toString();
}另一种想法是,您可以从编译后的文件中获取信息。
希望这能有所帮助。
发布于 2010-07-14 02:25:13
经过广泛的研究,我得出的结论是,这根本不可行。
https://stackoverflow.com/questions/2304135
复制相似问题