我有一个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!
我们吵架了。我对自己说过或做过的一些事情并不感到自豪。最后,我一怒之下,完全删除了所有对杰宁的引用。她被彻底从系统中删除了。我的光标落在“空垃圾桶”菜单选项上,就像棺材的冷盖子一样。
我不认为Flash曾经恢复过。直到今天,它仍然依附在Jenine的记忆中。她的旧的,不完美的定义仍然像被遗弃的幽灵一样漂浮在我的项目中。每当我强迫Flash编译时,它仍然亲切地将她插入我的电影中,将她的定义依偎在其他生活类中,就像一个小神龛。我想知道他们是否能看到她。
我和Flash已经不再说话了。我写我的代码,它编译它。镇上有一个名叫Summer的新女孩,她看起来几乎和Jenine一模一样,好像有人刚刚将她的源代码批发复制到一个新类中,但Flash没有表现出任何兴趣。大多数时候,它只是闷闷不乐地走来走去,在我的评论中写下糟糕的诗歌,当它认为我没有注意的时候。
我希望没有其他人有过类似的经历,这只是Flash代码库中可怕的黑暗泻湖中的一个奇异的,痛苦的涟漪。有人知道如何擦除编译器正在使用的任何缓存吗?