2011-05-03 89 views
0

我有一些工作的actionscript3代碼,我想作爲一個庫展示。沒有皮膚或組件,只有純粹的as3類。所以我創建了一個SWC,把所有代碼放在那裏,打包成SWC。代碼本身依賴於其他幾個SWC,所以我將它們作爲合併的依賴項包含在內,因此得到的SWC將其全部納入其中(大小不一,但可以肯定)。檢查鏈接器報告以確保一切,一切都很好。使用自定義swc時出現奇怪的錯誤

然而,當我嘗試使用Flex應用程序這個SWC(甚至可以是空的),我得到奇怪的運行時錯誤是這樣的:

ReferenceError: Error #1065: Variable _FormItemStyle__embed_css_Assets_swf_mx_containers_FormItem_Required_527421487 is not defined. 

at flash.display::MovieClip/nextFrame() 
at mx.managers::SystemManager/deferredNextFrame()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:319] 
at mx.managers::SystemManager/preloader_initProgressHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2945] 
at flash.events::EventDispatcher/dispatchEventFunction() 
at flash.events::EventDispatcher/dispatchEvent() 
at mx.preloaders::Preloader/timerHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:398] 
at flash.utils::Timer/_timerDispatch() 
at flash.utils::Timer/tick() 

我沒有得到一個線索是什麼意思我錯過了什麼o_O(顯然,圖書館包裝出了問題)。我想這是非常愚蠢的,因爲數百萬開發者創建自己的SWCs時沒有任何問題。我的Flex SDK是3.2.0,我使用Maven和flex-mojos(但這並不重要,因爲我試圖用Flash Builder純粹構建SWC並得到相同的結果),並且我構建了flash player 9(但那也沒關係,我得到了同樣的狗屎大廈10)。

有人可以幫我在這個嗎?

UPDATE。

顯然它與傳遞依賴關係,如果我添加所有的SWC我的庫依賴於最終的Flex應用程序,一切正常。所以現在的問題是:我如何在沒有這樣做的情況下使其工作,爲什麼即使這些傳遞性依賴關係合併在我的SWC中,它也不起作用?

回答

0

貌似你試圖使用運行時共享庫​​外部爲您的依賴關係的聯繫。嘗試將它們更改爲併入代碼。在位於Properties -> Flex Library Build Path -> Library Path的Flash Builder中。 (雖然我不確定如何使用Maven做到這一點)。這樣,這些類的字節碼將被包含在swc中,並且不會有「傳遞依賴性」。

+0

好吧,我實際上提到過,我把代碼合併到了代碼中,但是它並沒有幫助某種程序。:( – 2011-05-05 21:23:12

+0

@konkere糟糕,我錯過了。當你說你試圖在一個空應用程序中使用它時, 「use」是什麼意思?你的意思是當你將swc(使用合併到代碼中)鏈接到一個完全空的項目時,你會看到這些錯誤? – 2011-05-05 22:43:26