在某些情況下Java與Flex的集成是富于挑戰(zhàn)的。Adobe期望通過Flex 3的發(fā)布來簡化這一切,在Flex 3中包含了一個基于Java的編譯器API 。這個API可以讓你從Java應用中編譯SWF和SWC文件, 支持與mxmlc和compc命令行工具相同的選項。
下面的概念依賴于Java開發(fā)者創(chuàng)建的Flex應用對象。這些對象代表一個Flex應用,它們是通過設置其mxml和輸出來構建的。
Application application = new Application(new File("../apps/TestApp.mxml"));
application.setOutput(new File("../apps/TestApp.swf"));
long result = application.build(true);
值得強調(diào)的Flex中的Java API列舉如下:
在編譯期產(chǎn)生報告并提供如進度和日志這樣的信息,同時提供關于應用、庫和項目的報告。
更高效的增量編譯。因為它只會重新編譯變化的虛擬文件而不是應用中的所有文件。
在運行期創(chuàng)建應用和庫的源文件的能力,并且將這些文件編譯到應用和庫中。
在內(nèi)存中創(chuàng)建Flex應用,并且將它們編譯成SWF文件而無需事先在磁盤上創(chuàng)建好MXML文件。
對于希望構建Flex應用的Java開發(fā)者來說,現(xiàn)在已經(jīng)有一些工具可以幫助他們了。Antennae已經(jīng)出來一段時間了,它是一套利用Ant來構建復雜的Flex項目的模板。Antenne同樣也是基于mxmlc和compc的,它向開發(fā)者提供了將Flex集成到Java項目中的另一種方式。
可以在這里查看Flex 3的基于Java編譯器API的詳細信息。