我有一个Flash项目,它有很多源文件。我有一个使用率相当高的类,称之为 Jenine。我最近(也许是冷酷无情)将 Jenine 从一个命名空间迁移到了另一个命名空间。我以为我们已经准备好了——我以为是时候了。新的 Jenine 在各方面都更好了——她去掉了一些臃肿的代码,她把自己从一些残余的类关系中解耦出来,她终于回到了她心里一直暗自知道的命名空间。曾经属于。她是她自己的同类。
不幸的是,Flash 没有这些。也许已经形成了执着。也许它不希望 Jenine 脱钩。不管怎样,它都坚持内存中旧的、完美的珍妮版本。它拒绝继续前进。它忽略了她的(函数)调用。它试图忘记她新的公共(public)界面。相反,它构建的每个 Jenine 实例始终是旧版本的副本,直至其类路径:
var jenineInstance:Jenine = new Jenine();
trace( getQualifiedClassName(jenineInstance));
// Should print: com.newnamespace.subspace::Jenine
// Prints: com.oldnamespace.subspace::Jenine
// Ah, young love!
我们战斗过。我对自己说过或做过的一些事情并不感到自豪。最后,我在盛怒之下彻底删除了所有关于珍妮的内容。她已经彻底从系统中删除了。我的光标落在“清空垃圾箱”菜单选项上,就像棺材的冷盖一样。
我认为 Flash 再也没有恢复过。直到今天,这件事仍然留在珍妮的内存中。她旧的、不完美的定义仍然像被遗弃的幽灵一样漂浮在我的项目中。每当我强制 Flash 编译时,它仍然会亲切地将她插入到我的电影中,将她的定义安放在其他活生生的类中,就像一座小神殿一样。我想知道他们是否能看到她。
Flash 和我不再说话了。我编写代码,它编译它。镇上新来了一个名叫 Summer 的女孩,她看起来和 Jenine 几乎一模一样,就好像有人刚刚将她的源代码批量复制到一个新类中,但 Flash 没有表现出任何兴趣。大多数时候,当它认为我没有在看时,它只是闷闷不乐地在我的评论中写下糟糕的诗。
我希望没有人有过类似的经历,这只是 Flash 代码库可怕的黑暗泻湖中的一个奇异的、痛苦的涟漪。有谁知道如何删除编译器正在使用的缓存?
最佳答案
Flash 仍然有 ASO 文件,它是类的编译字节码。在 Windows 上,您可以在此处查看 ASO 文件:
C:\Documents and Settings\username\Local Settings\Application Data\Adobe\Flash CS4\en\Configuration\Classes\aso
在 Mac 上,目录结构类似于 /Users/username/Library/Application Support/
您可以手动删除这些文件,也可以在 Flash 中选择控制->删除 ASO 文件
来删除它们。
关于Flash CS4不肯放手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193953/