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

因为某种原因,我将系统日期改早了一个月时间,之后我编译过一次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会自动检测并重新加载新文件,这该是多好的事情呢。

转载于:https://www.cnblogs.com/yao/archive/2007/09/19/898043.html

[Flash开发笔记] 关于Flash中的ASO文件相关推荐

  1. C#开发笔记之22-C#中的int、long、float、double等类型都占多少个字节的内存。

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#开发笔记之22-C#中的int.long.float.double等类型都占多少个字节的内存. | .Net中文网. C#开发笔记 ...

  2. 微信小程序实例——天气预报开发笔记(进行中...)

    ★ 背景 [提示]:正在补充更新中- 首先,附上一张效果图. 之前就有关注过小程序的发展,感觉可以抽一点的时间来学习一下,通过官方文档以及提供的示例 Demo,发现兴趣挺高,不失为一个可以扩展自身技能 ...

  3. Android开发笔记(三十二)文件基础操作

    File类 File类是java中的文件操作工具类,它的常用方法如下: File构造函数 : 根据文件路径构造File对象 delete : 删除文件 exists : 判断文件是否存在 getNam ...

  4. Java开发笔记(八十八)文件字节I/O流

    前面介绍了如何使用字符流读写文件,并指出字符流工具的处理局限,进而给出随机文件工具加以改进.随机文件工具除了支持访问文件内部的任意位置,更关键的一点是通过字节数组读写文件数据,采取字节方式比起字符方式 ...

  5. [Flash开发笔记] 如何在as2.0中使用自定义类事件

    as2编程中,我们通常要处理一些异步加载的数据,有点类似ajax中的callback,即我们不知道何时数据才会返回,并且只有当数据返回时,执行我们定义的操作.     在flash6及以前,我们会常常 ...

  6. [006] [ESP32开发笔记] 使用Flash下载工具烧录固件步骤

    Flash下载工具链接 最终配置如下图所示,下面开始分步说明. 选择开发型号 SPI配置与Menuconfig中配置一致: 分区表(partition-table)地址查看: bootloader与p ...

  7. PixiJS游戏框架-游戏开发笔记(更新中...)

    文章目录 基础代码篇 游戏窗体 图片.文本添加 元素样式与属性 元素事件开启 基本函数 鼠标控制 获取鼠标指针坐标 发现问题,引出锚点 锚点设置 锚点分辨 案例演示1 案例演示2 动画移动 循环 基本 ...

  8. 蓝牙芯片----BK3431开发笔记------RW stack中添加自定义服务教程(4)

    一.实现自定义服务 在 RW 协议栈协议栈中添加一个自定义服务需要实现 6 个文件,分别为: custom.c custom.h custom_task.c custom_task.h app_cus ...

  9. 驱动开发笔记1—内核中的事件、进程、线程、自旋锁

    内核模式下的等待 KeWaitForSingleObject() 和 KeWaitForMultipleObjects() NTSTATUS KeWaitForSingleObject(IN PVOI ...

最新文章

  1. 5年Python功力,总结了10个开发技巧
  2. 难以置信的目标检测小妙招:多训练几个epochs,平均一下就能获得更好的模型...
  3. Jupyter notebook 编写scala与spark
  4. java检查两个字符串是否包含,java判断一个字符串是否包含另外一个字符串,java另外一个,要检查一个字符串是否包含...
  5. 创邻科技张晨:智能物联为图数据库的迅速发展提供了良好应用场景
  6. traceroute显示*号_traceroute 的名词解释
  7. mysql存储登录密码_用户身份验证:存储用户ID和密码在一个MySQL数据库
  8. linux定时任务_linux定时任务cron HelloWorld
  9. 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider)
  10. [洛谷P5068][Ynoi2015]我回来了
  11. Spring Cloud-honghu Cloud分布式微服务云系统
  12. Security+ 学习笔记56 增强隐私保护的技术
  13. solver.prototxt参数解析
  14. ztree刷新后记住上次展开收起的菜单
  15. mysql编写倒计时_最简单的实现倒计时
  16. 移动硬盘计算机无法打开硬盘,win10系统电脑无法打开移动硬盘的详细步骤
  17. lambda累加求和
  18. Docker进入容器报错
  19. 计量经济学笔记——自相关的检验和处理(转载)
  20. Sencha Touch 做相册

热门文章

  1. 图像压缩算法动态规划c语言,图像压缩算法  动态规划
  2. APRILTAG 标准图片:TAG25H9
  3. 基于 RT-Thread的全向赛车算法开发
  4. RT-Thread GCC VSCode等开源工具链 在智能小车制作中的应用
  5. 英飞凌AI越野组入门教程
  6. 北京科技大学天津学院第三届智能车校内赛总决赛完美落幕
  7. 第十六届全国大学生智能车竞赛赛题规划
  8. 2020年人工神经网络第二次作业-参考答案第六题
  9. 两轴机械臂+机械爪整体控制板设计与机械爪控制调试
  10. 使用STC8H1K28控制微型磁悬浮