我有一些工作的 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 中它也不起作用?