Actionscript 3 -使用自定义swc时的奇怪错误



我有一些工作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:autobuild3.2.0frameworksprojectsframeworksrcmxmanagersSystemManager.as:319]
at mx.managers::SystemManager/preloader_initProgressHandler()[C:autobuild3.2.0frameworksprojectsframeworksrcmxmanagersSystemManager.as:2945]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()[C:autobuild3.2.0frameworksprojectsframeworksrcmxpreloadersPreloader.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)。

有人能帮我解决这个问题吗?

更新。

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

看起来您正在尝试使用运行时共享库外部作为依赖项的链接。尝试将它们更改为合并到代码中的。在Flash Builder中,在Properties -> Flex Library Build Path -> Library Path。(我不确定如何使用Maven做到这一点)。这样,这些类的字节码将包含在swc中,并且不会有"传递依赖"。

最新更新