zoukankan      html  css  js  c++  java
  • flash cs编译,控制>删除ASO和影片,解决代码不执行问题

     [Flash开发笔记] 关于Flash中的ASO文件 收藏
    http://www.cnblogs.com/yao/archive/2007/09/19/898043.html

        今天发生这样一件“奇怪”的事情:

        因为某种原因,我将系统日期改早了一个月时间,之后我编译过一次Flash程序(Flash程序中有很多的as2.0的类)。

        后来我将系统时间改回正常时间,然后修改了我的类中的某些代码,发布Flash程序时,怪事出现了,我修改的那些代码,不起作用,任我如何修改,编译,重启Flash,都是执行着修改前的旧代码。

        然后我进行跟踪调试,但发现新修改的代码就是莫名的跳过不执行,这让我甚至怀疑Flash编译器是不是有问题。。。

        在大概上千秒的时间内,这似乎要让我抓狂了,我想应该是有什么东西缓存了,于是将计算机重启,但结果还是一样。

        然后我又想:这还可能与更改系统时间有关,可是Flash生成了什么与时间有关的东西呢?

        。。。

        再次沉默了若干时间后,我突然眼前一亮,记得控制菜单里有一个"删除 ASO 文件",莫不是与这个有关系?
        赶紧执行这个命令,再编译,好了。
        这个平时根本不用的菜单命令,没想让我今天给用上了。那倒底什么是ASO文件呢,看来有必要好好了解一下了,查帮助,对ASO文件说明如下:
        (摘自Flash帮助:类 > 编译和导出类 > 使用 ASO 文件)
        在编译过程中,Flash 有时会在默认全局类路径目录下的 /aso 子目录下创建扩展名为 .aso 的文件。
        (aso缓存在如下目录:C:\Documents and Settings\Yao\Local Settings\Application Data\Macromedia\Flash 8\zh_cn\Configuration\Classes\aso\)
        .aso 扩展名代表 ActionScript object (ASO)。Flash 将为每个被隐式或显式导入并成功编译的 ActionScript 2.0 文件生成一个 ASO 文件。该文件包含从相关的 ActionScript (AS) 文件中产生的字节码。因此,这些文件包含类文件的编译形式(字节码)。

        只有在出现以下情况时 Flash 才需要重新生成 ASO 文件:

        对应的 AS 文件已被修改。
        那些包含了由对应的 ActionScript 文件导入或使用的定义的 ActionScript 文件已被修改。
        对应的 ActionScript 文件中包含的 ActionScript 文件已被修改。
        编译器创建 ASO 文件以便进行缓存。您可能会注意到第一个编译过程比后面的编译过程要长。这是因为只有更改过的 AS 文件才被重新编译到 ASO 文件中。对于未更改的 AS 文件,编译器直接从 ASO 文件读取已编译过的字节码而不是重新编译 AS 文件。

        ASO 文件格式是仅为内部使用而开发的中间格式。它不是文档文件格式,而且不会重新进行分布。

        如果您遇到 Flash 编译已编辑过的文件的早期版本的问题,请删除 ASO 文件然后重新编译。

        根据最后一句,显然Flash编译了早期的ASO文件,也就是说,我的AS类是修改过的,而ASO文件没有得到更新。那么,这里的“早期版本”是如何维护的呢?是什么原因导致ASO没有更新呢?或者说,如何断定是早期版本呢?

        答案显然是,这个早期版本,是靠这个ASO文件的生成时间来判断的,如果这个ASO时间早于当前时间,那么就算你修改了AS类,仍然不会被重新编译,而我修改过系统时间后编译过一次,这样系统时间改回来后,不管如何编译,从时间上来说,这个ASO都是最新的版本,这就是为什么会出现我文头所描述的问题现象的原因了。

        说起“早期版本”,真希望Flash能有真正的版本签名功能,举个例子,我发布了一个程序(swf),程序中动态加载了若干的其它子程序(swf),但这个程序或子程序在某段时间之后,有新版本发布了,这时候浏览器会缓存有旧版本,而这时候用户要看到新版本,必须手动清空缓存的旧文件,才能看到新的文件。如果有版本签名功能,Flash会自动检测并重新加载新文件,这该是多好的事情呢。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wu_qing_man/archive/2008/03/26/2221135.aspx

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wu_qing_man/archive/2008/03/26/2221135.aspx

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wu_qing_man/archive/2008/03/26/2221135.aspx

  • 相关阅读:
    c++ vector容器的使用,序列倒叙reverse(),容器底部插入一个数值push_back()
    vs2015+opencv-3.2.0-vc14配置
    串的匹配算法--C语言实现
    顺序队列与链式队列--C语言实现
    链式栈-C语言实现
    顺序栈与两栈共享空间-C语言实现
    静态链表-C语言实现
    循环双向链表-C语言实现
    链表-C语言实现
    顺序表-C语言实现
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/1959561.html
Copyright © 2011-2022 走看看