2010-04-15 72 views
0

如何在AS3/Flex項目中組織文件和包,我遇到了一個問題。並簡單介紹了問題:
as3/flex中的導入和包結構

該項目的文件結構(也應該留)是這樣的:

libs/Class1/src/<files> 
libs/Class2/src/<files> 
libs/Class3/src/<files> 

amxmlc編譯源路徑變量指向:

libs/ 

我需要它,因爲我必須在Class3中繼承Class1。這推我把所有的類合併到看起來怪異,因爲這包:

package ClassX.src { /* ... */ } 

因此,在實踐中,它看起來像:

package Class3.src 
{ 
    import Class1.src.Class1; // I prefer direct imports 

    public class Class3 extends Class1 { /* ... */ } 
} 

有沒有辦法讓文件/文件夾結構並在軟件包名稱中刪除src。無法選擇更改文件結構或直接將編輯器指向基類目錄。
對於加入該項目的新程序員而言,我們真的很困惑,我們真的很想避免這種情況。

非常感謝任何幫助!!!

+0

我同意這是非常混亂和不尋常的。但我不明白爲什麼這個結構首先是這樣設置的?爲什麼你把src文件夾放在lib文件夾中?如果你想提供庫創建'SWC's並把它們放在那裏。 – ilikeorangutans 2010-04-15 14:01:46

+1

這是一個包含5種以上不同編程語言的svn項目,dirs結構必須像整個項目一樣。 libs /是一個令人誤解的名字。裏面有一個swc庫,但是我之前提到的類就像主應用程序的插件一樣。每個ClassX都是一個插件,所以它們不是在swc中關閉的標準庫,但是每個都是自身實例化的,其中一些應該爲子類化打開。簡化的導入聲明實際上是** BEST **選項。我不知道如何強制它。不幸的是,*不會在dirs結構中更深入。 – trzewiczek 2010-04-15 15:46:40

回答

1

所以這裏有兩件事。第一種是這些「插件」包含在項目中的方式,另一種是導入聲明。

關於插件:你真的應該考慮讓它們成爲SWC。您可以對SWC中的類進行子類化,因此不需要在其中存在代碼。只是我的直覺告訴我這可能會造成很多混亂。

關於導入:我認爲沒有辦法解決這個問題,除非您改變軟件包結構。正如你已經注意到'*'只會導入一個級別的包,所以你必須導入每個包/類。

1

擺脫src包的唯一方法是更改​​文件結構。

至於插件,我會創建一個單獨的「Flex庫項目」。然後,您可以將插件包直接放入該新項目的根目錄中,或者因爲不想更改文件結構,可以在源路徑選項卡下的插件Flex庫項目的屬性中添加文件夾Flex庫構建路徑。

要導入插件在不同的項目,你將不得不Flex庫項目添加到進口項目(也是構建路徑選項可在項目屬性選項卡)的庫路徑