我有一个Flash项目,它有很多源文件。我有一个使用量相当大的班级,叫Jenine。我最近(也许是无情地)将Jenine从一个命名空间迁移到另一个命名空间。我以为我们已经准备好了——我以为是时候了。新的珍妮在各方面都更好——她失去了一些代码膨胀,她与一些残存的阶级关系脱钩,她终于回到了自己心中一直秘密知道的名字空间,那是她真正属于的名字空间。她属于自己的同类。
不幸的是,Flash没有这些。也许它形成了一种依恋。也许它不想让珍妮脱钩。无论哪种方式,它都紧紧抓住了记忆中的老版、完美版珍妮。它拒绝继续。它忽略了她的(函数)调用。它试图忘记她的新的公共界面。相反,它构建的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编辑时,它仍然会可爱地将她插入我的电影中,将她的定义嵌套在其他活生生的阶层中,就像一座小神殿。我想知道他们是否能看到她。
闪电侠和我真的不再说话了。我写代码,它编译它。镇上有一个叫Summer的新女孩,她看起来和Jenine几乎一模一样,好像有人刚刚把她的源代码批量复制到一个新的类中,但Flash没有表现出任何兴趣。大多数时候,当它认为我没在看的时候,它只是在我的评论里闷闷不乐地写些糟糕的诗。
我希望没有其他人有过类似的经历,这只是Flash代码库中可怕的黑暗泻湖中的一个奇怪、痛苦的涟漪。有人知道如何擦除编译器正在使用的缓存吗?