我正在嘗試爲約10個相關資產設置生產環境。視覺和其他方面的某些要素將在這10個資產之間共享。我在Flash Builder 4中將每個項目都視爲自己的Pure AS3項目。在Flex庫項目中使用.swc
每個資產都有一個關聯的.fla,它將一個.swc輸出到該資源的libs文件夾中 - 最終編譯將完成通過ant,頂級源代碼是每個Flash Builder項目中的主要.as文件。
由於某些元素是在多個資產之間共享的,因此我在工作區中創建了一個Flex庫項目。這個庫項目有一個帶有標準結構的/ src文件夾,以及一個我堅持使用的/ lib /文件夾,例如,greensock的TweenLite。
除了源代碼和第三方.swc,庫項目還有一個FLA,它將.swc導出到/ lib /文件夾中。
下面是問題:我無法在我的相關項目中看到.swc的庫導出。理論上,我從Flex庫項目的.fla庫中導出的每個類都應該編譯到庫項目的.swc中。我發現情況並非如此,我不清楚爲什麼。
我打算繼續挖掘,但我想把它放在這裏,以防其他人遇到這些問題。任何人都知道我在做什麼錯了?
編輯:顯然,我的綠色的.swc沒有被編譯到最終的輸出。昨天是。我不確定發生了什麼變化。我想我的問題是蒸餾下來的:我如何確保包含在我的Flex庫項目的構建路徑中的.swc文件的所有類都包含在FLP生成的最終.swc中?
編輯2:我發現了一種可怕的解決方法。現在我在我的src文件夾中創建了一個類,並且我聲明瞭任何我想從我的.swc中包含的任何內容 - 例如,public var tweenLite:TweenLite,public var logo:Logo等。我發現如果我在其中一個源文件中聲明它,那麼我可以在相關項目中訪問它。僅僅導入它是不夠的 - 這意味着我將不得不手動聲明我想要訪問的每個類。一定會有更好的辦法。我錯過了什麼?
什麼樣的鏈接類型被設定爲在庫項目屬性您的SWC'Flex庫構建路徑>庫Path'標籤?它是否被合併到代碼中? – Constantiner 2011-04-13 14:38:18
是的。我剛剛想出了一個解決方法,即將更新我的文章 - 但它仍然是一個PITA。但是,是的,「合併到代碼」目前被選中。另一個選項「使用默認(外部)」已被選中 - 它無法正確使用。 – Myk 2011-04-13 14:48:15
順便說一句,你是對的,導入指令不包括導入類到編譯。但是你不必包含(聲明)所有來自swc的類。如果所有的類都耦合在一起,那麼你可以只聲明鏈中相互引用的主類。你可以使用更簡單的語法來鏈接類,而不是聲明每一個類:'private static var linking:Array = [Class1,Class2];' – Constantiner 2011-04-13 15:33:46