2011-05-03 94 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