我有一个 Flash 项目,它有很多源文件。我有一个相当频繁使用的课程,称之为 Jenine。我最近(也许,无情地)将 Jenine 从一个名称空间重新定位到另一个名称空间。我以为我们已经准备好了 - 我以为是时候了。新的 Jenine 在各方面都做得更好 - 她已经失去了一些代码膨胀,她已经脱离了一些退休的阶级关系,她终于回到了她一直秘密知道的名字命名空间是她真正的那个曾经属于。她是她自己的一员。
不幸的是,Flash 也没有。也许它已经形成了一种依恋。也许它不希望 Jenine 脱钩。无论哪种方式,它都牢牢抓住 Jenine 的旧版,完美版。它拒绝继续前进。它忽略了她的(函数)调用。它试图忘记她的新的公共界面。相反,它构建的每个 Jenine 实例始终是旧版本的副本,直到其类路径:
var jenineInstance:Jenine = new Jenine();
trace( getQualifiedClassName(jenineInstance));
// Should print: com.newnamespace.subspace::Jenine
// Prints: com.oldnamespace.subspace::Jenine
// Ah, young love!
我们打了。我对自己所说或做过的一些事情并不感到骄傲。最后,在愤怒的高潮中,我完全删除了 Jenine 的所有引用。她完全被系统彻底清除了。我的光标落在 “清空垃圾” 菜单选项上,就像棺材的冷盖一样。
我认为 Flash 无法恢复。直到今天,它仍然依附于 Jenine 的记忆。她的旧的,不完美的定义仍然像我被遗弃的幽灵一样漂浮在我的项目中。每当我强迫 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 中可以选择Control->Delete ASO files
以删除它们。
尝试删除您的 ASO 文件。
ASO 文件是类文件的高速缓存编译版本。虽然 IDE 在更改时更好地放弃旧缓存,但有时您必须手动删除它们。要删除 ASO 文件:控制 > 删除 ASO 文件。
这也是 CS3 中引入的 “I-am-not-my-changes-so-let-me-add-a-trace-now-everything-works” 错误的原因。
如果使用其他机器编译它会怎么样?一个新装的很可爱。我希望你的机器不嫉妒。