我有一些可以正常工作的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-Player9构建(但这也无关紧要,我得到了相同的狗屎构建接近10)。
有人能帮我解决这个问题吗?
更新。
显然,这与传递依赖有关,如果我将我的库所依赖的所有SWC添加到最终的Flex应用程序中,一切都会正常工作。所以现在的问题是:我如何在不这样做的情况下让它工作,为什么即使这些可传递的依赖项被合并到我的SWC中它也不能工作?
发布于 2011-05-04 07:53:06
看起来您正在尝试使用运行时共享库或外部作为依赖项的链接。尝试将它们更改为合并到代码中的。在Properties -> Flex Library Build Path -> Library Path中的Flash Builder中。(不过,我不确定如何使用Maven做到这一点)。这样,这些类的字节码将包含在swc中,并且不会有“传递依赖”。
https://stackoverflow.com/questions/5873972
复制相似问题