Flash CS4拒絕放手




caching flash-cs4 (5)

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以刪除它們。

我有一個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代碼庫。 如果你有一些僥倖的機會,或者你知道如何刪除編譯器正在使用的任何該死的緩存,請幫助。


你有幾個swf文件? 如果您的類是在其中一個swf中導入的,那麼其他swf也會使用相同版本的類。 在一個swf中使用*的一個舊導入將執行此操作。 重新編譯所有內容,看它是否有效。


嘗試刪除您的ASO文件。

ASO文件是類文件的高速緩存編譯版本。 雖然IDE在更改時更好地放棄舊緩存,但有時您必須手動刪除它們。 要刪除ASO文件:控制>刪除ASO文件。

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


如果使用其他機器編譯它會怎麼樣? 一個新裝的很可愛。 我希望你的機器不嫉妒。


此外,要使用新的命名空間類,您也可以這樣做

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