Actionscript 3 ActionScript能告诉我们SWF是何时发布的吗?

Actionscript 3 ActionScript能告诉我们SWF是何时发布的吗?,actionscript-3,datetime,flash,Actionscript 3,Datetime,Flash,我想写一个小类,添加一个日/月框,显示从Flash发布SWF的日期 我工作的公司定期生产许多主权财富基金,每个基金都有许多版本,在几个月的时间里反复生产。我们用来与客户沟通的版本跟踪系统是一个日/月日期框,给出SWF发布的日期。到目前为止,我们一直在手工填写出版日期。如果我能用ActionScript以编程的方式实现这一点,那就太棒了 有什么见解吗?基本上,我所需要的就是给我打电话,告诉我出版日期,甚至。。任何关于SWF发布的环境的信息,我都可以使用它来实现某种形式的。。此SWF独有的自动版本标

我想写一个小类,添加一个日/月框,显示从Flash发布SWF的日期

我工作的公司定期生产许多主权财富基金,每个基金都有许多版本,在几个月的时间里反复生产。我们用来与客户沟通的版本跟踪系统是一个日/月日期框,给出SWF发布的日期。到目前为止,我们一直在手工填写出版日期。如果我能用ActionScript以编程的方式实现这一点,那就太棒了

有什么见解吗?基本上,我所需要的就是给我打电话,告诉我出版日期,甚至。。任何关于SWF发布的环境的信息,我都可以使用它来实现某种形式的。。此SWF独有的自动版本标识


那么,ActionScript能告诉我们SWF是什么时候发布的吗?

恐怕你不能在ActionScript中这样做。根据构建主权财富基金的方式,可能有两种选择。例如,如果您使用flashide,您可以使用发布swf。这个jsfl可以替换一个占位符变量,您将在其中存储发布日期和发布swf(很长时间没有编写jsfl脚本,但要让它正常工作应该不会太难)

假设您有一个版本类:

public class Version {

    public var publicationDate:Date = new Date();

}
脚本应读取此类所在的文件,找到该行并将其替换为当前日期:

大概是这样的:

var curDate = new Date();
var dateLine = "public var publication:Date = new Date(" + curDate.getFullYear() + "," + curDate.getMonth() + "," + curDate.getDate() +");";

不确定这是否可行,但您是否可以使用一个“include”语句,在编译时调用一个外部生成的.as文件,其中硬编码了(当时)当前日期?您需要在服务器上运行某种脚本,每天更新一次此文件以保持其最新状态。

此外,您还可以使用awesome as3swf库从SWF字节码中读取日期。
退房。

乔治是对的。Adobe在每个已编译的swf中隐藏一个未记录的ProductInfo标记,该标记包含编译日期。DisplayObject.loaderInfo.bytes包含加载显示对象的完整未压缩swf

因此,在没有外部库的情况下(从显示对象)获取swf编译日期的最快方法是:


SWF规范:

如果您正在使用FlashDevelop(这是一款非常好的轻量级、免费的AS3 IDE),您可以执行以下操作:

public static function GetBuildDate() : String
{
    return CONFIG::timeStamp;
}
它以YYYY-MM-DD格式返回日期


更多信息:

我想这可能行得通,但由于我们没有运行任何服务器,因此设置起来有点困难。这些主权财富基金由个人开发者发布。我想我可以拼凑出一些批次的东西,但那会很棘手。谢谢你的主意。这当然不是个坏主意。我曾认为我可能必须求助于JSFL来完成这一点。不幸的是,我暂时无法做到这一点,但很高兴知道它可以通过这种方式实现。这看起来很有希望。我将尝试它,并在验证它是否有效时更改答案。非常感谢。绝对酷。我不知道这些信息在swf开箱即用(至少在用MXMLC编译时是这样)。我会记住这一点,以防我需要得到编译日期。我喜欢这样一个事实,即您可以拥有这些数据,而不需要任何额外的构建时技巧,也不需要使用完整的解析器,如果您只需要这一条信息,那么这似乎有些过分了。顺便说一句,我不介意@spiralganglion是否接受了这个答案,而不是目前接受的答案,因为它显然比我的好;)
public static function GetBuildDate() : String
{
    return CONFIG::timeStamp;
}