使用自定义swc时出现奇怪的错误

时间:2011-05-03 18:27:40

标签: actionscript-3 flex3 swc

我有一些工作的actionscript3代码,我想作为一个库呈现。没有皮肤或组件,只有纯粹的as3类。所以我创建了一个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(显然图书馆包装有问题)。我认为这是非常愚蠢的事情,因为数百万开发人员创建自己的SWC没有任何问题。我的Flex SDK是3.2.0,我使用Maven和flex-mojos(但这并不重要,因为我试图用Flash Builder构建SWC并获得相同的结果)并且我构建了flash-player 9(但是也没关系,我得到同样的狗屎建筑物10)。

有人可以帮我这个吗?

更新。

显然它与传递依赖关系有关,如果我将我的库所依赖的所有SWC添加到最终的Flex应用程序,一切正常。现在的问题是:如何在不这样做的情况下使其工作,为什么即使在我的SWC中合并这些传递依赖项也不起作用?

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试使用运行时共享库​​外部作为依赖项的链接。尝试将其更改为合并到代码。在Properties -> Flex Library Build Path -> Library Path中的Flash Builder中。 (我不知道如何使用Maven做到这一点)。这样,这些类的字节码将包含在swc中,并且不存在“传递依赖”。