Flash CS4拒绝放手

时间:2010-02-03 17:32:15

标签: flash caching flash-cs4

我有一个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无法恢复。直到今天,它仍然依附于珍妮的记忆。她的旧的,不完美的定义仍然像我被遗弃的幽灵一样漂浮在我的项目中。每当我强迫Flash编译时,它仍然会将她的爱情插入到我的电影中,将她的定义融入其他生活课程中,就像一个小神社。我想知道他们是否能看见她。

Flash,我真的不再说话了。我写了我的代码,它编译它。在镇上有一个名叫Summer的新女孩看起来几乎与Jenine完全相同,好像有人刚刚将她的源代码批发复制到一个新的类中,但Flash并没有表现出任何兴趣。大多数时候,当它认为我不看时,它只是在我的评论中徘徊并写下糟糕的诗歌。

我希望没有其他人有类似的经历,这只是一个奇怪的,痛苦的涟漪在可怕的黑暗泻湖,即Flash代码库。如果你有一些侥幸的机会,或者你知道如何删除编译器正在使用的任何该死的缓存,请帮助。

7 个答案:

答案 0 :(得分:698)

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将其删除。

答案 1 :(得分:198)

尝试删除您的ASO文件。

ASO文件是类文件的缓存编译版本。虽然IDE在更改时放弃旧缓存更好,但有时您必须手动删除它们。要删除ASO文件:控制>删除ASO文件。

这也是CS3中引入的“I-am-not-my-changes-so-let-me-add-a-trace-now-everything-works”错误的原因。

答案 2 :(得分:164)

如果使用其他计算机编译该怎么办?一个新装的将是可爱的。我希望你的机器不嫉妒。

答案 3 :(得分:125)

我发现了一个可能有帮助的相关行为(听起来你的具体问题更深入了):

Flash通过查看时间戳来检查源文件是否需要重新编译。如果其编译版本而不是源文件,则会重新编译。但它不会检查编译版本是否是从同一源文件生成的。

具体来说,如果您的动作脚本文件处于版本控制之下,并且您还原了更改,则恢复的文件通常会有一个较旧的时间戳,Flash将忽略它。

答案 4 :(得分:103)

此外,要使用新的命名空间类,您也可以

var jenine:com.newnamespace.subspace.Jenine = com.newnamespace.subspace.Jenine()

答案 5 :(得分:97)

你有几个swf文件吗?如果您的类是在其中一个swf中导入的,那么其他swf也会使用相同版本的类。在一个swf中使用*的一个旧导入将执行此操作。重新编译所有内容,看它是否有效。

答案 6 :(得分:11)

使用grep模拟在整个项目文件夹中的文件中查找字符串oldnamespaceJenine。然后你就知道下一步该做什么了。