2010-05-24 58 views
1

我正在爲Flex/Air開發一個非常大的應用程序。我們使用GraniteDS and Tide與我們的Java EE服務器中的模型進行交互。Flex中的模塊性

我一直在閱讀有關Flex中的模塊化和模塊。該應用程序已經建成,我正在尋找出路來重新設計一些類和部分。從我讀到目前爲止,我瞭解一個模塊是一個不同的SWF可以動態加載。大多數教程/文檔都面向使用Flex或Air的Flash「程序員」,而不是真正的開發人員,因此難以獲得在線資源。

我不明白 - 但是 - 如何在此模塊下封裝ActionScript類或MXML視圖。

我已經將一些代碼分離到了庫中。例如,來自Granite的生成代碼位於「服務器」庫中。但我想將其部分邏輯與其版主,控制器和視圖分開。模塊是否要走?是否有一個「虛擬模塊」或「爲程序員提供首個Flex模塊」,比如教程,以獲得更好的視角以構建我的架構?何時選擇庫和何時選擇模塊?

我正在使用Flex 3.5,並且向Flex 4的遷移還有很長的路要走,所以沒有Flex 4的答案,謝謝!

+0

請注意,您所說的「大部分教程/文檔都面向Flash」程序員「,他們正在使用Flex或Air而不是真正的開發人員,因此難以獲得在線資源。就書本而言,「flex 3 cookbook」有幾個關於模塊的好章節(鏈接:http://oreilly.com/catalog/9780596529857),並且網絡上有大量資源。 – 2010-05-24 18:23:22

+0

我發現的大多數例子都包含了MXML中的所有邏輯,而不是代碼。我發現其中大多數都是面向正在學習Flex的Flash設計師,而不是學習Flex的程序員。這是不同的觀衆,不同的視角。但是對於開發人員來說,有一些很好的資源(儘管更少)。也許「真正的開發人員」太苛刻了...... – 2010-05-24 18:57:53

回答

1

模塊是將UI封裝到不依賴於彼此的不同部分的答案。把它們想象成應用程序內部的應用程序。

如果你想封裝「代碼」,意思是non-ui actionscript,那麼你真的只想要類和類的包。你也可以將這些代碼打包到一個swc中,這只是你可以包含在多個項目中的代碼的編譯版本(我認爲這就是你所指的庫)。

你不想創建一個模塊來包含非UI代碼。您不希望在應用程序中使用模塊來分隔模型/視圖/控制器。

如果您的應用程序的一部分,在大多數情況下完全運行在它自己的,與除了傳遞信息,也許一點點的應用程序的其餘部分沒有真正的依賴關係,那麼它是有道理的模塊。

我們在哪裏使用模塊主要是針對具有不同部分的應用程序,您一次只能在一個部分工作。其他部分不需要佔用資源,因此我們有模塊中的不同部分,並根據需要加載/卸載它們。

這有幫助嗎?

編輯在回答下面的評論:

圖書館我的意思是Flex庫 項目,在那裏你封裝 classses並使用SWC。這些庫是否可以在Flex項目中使用 ? (我爲每個新庫使用一個獨立的庫項目 )。

是的,您可以在flex項目中使用這些swc(代碼庫)。只需將swc放在flex/flash構建器項目的lib目錄中,代碼就會自動添加到您的類路徑中。只要確保單個swc中所需的代碼都在swc內。不要讓swc依靠另一個swc來運行。

+0

感謝您的回答!它確認了我的模塊概念。 按庫我的意思是Flex庫項目,在那裏封裝類和使用SWC。你可以在Flex項目中使用這些庫嗎? (我爲每個新庫使用一個單獨的庫項目)。 我想我使用聊天窗口的模塊,它使用XIFF - 一個jabber客戶端庫,所以它使用來自項目其餘部分的很少的信息。 – 2010-05-24 19:12:22

+0

我在上面的答案中添加了更多信息來回答你的問題。 – 2010-05-24 19:27:44

+0

是的,我添加了swc,我想知道是否可以將該項目用作Flex項目中的子項目。無論如何,沒關係,我認爲我的模式化比我想象的要好。我只需添加一個聊天模塊,並將其他邏輯封裝在庫中。謝謝! – 2010-05-24 19:35:28