未在子应用程序中加载的外观(在Flex中)
我们尝试开发具有多个抽象层的Flash游戏引擎.此flex项目包含:
申请(1) – >加载类(2) – >加载另一个实现Flex组件(4)的类(3). 加载使用SWFLoader.最后一个Flex组件(4)只是一个具有AdvancedDataGrid的组.我们没有定义皮肤所以我认为它必须采用默认皮肤. 问题是在执行期间会抛出错误,因为在Flex组件中找不到组件的默认外观(4).在我们的例子中,对于AdvancedDataGrid: Error #1007: Instantiation attempted on a non-constructor. 在mx.controls :: AdvancedDataGridBaseEx中. guilty命令是:getStyle(“headerSeparatorSkin”);返回null 目前,我们找到了两个解决方案: >第一个解决方案是将属性headerSeparatorSkin =“spark.skins.SparkSkin”添加到Flex组件的AdvancedDataGrid中(4).但这意味着我必须为组件的每个部分手动添加每个皮肤,这是一个非常无聊的解决方案. 我们尝试了编译器选项“keep-all-type-selectors = true”(如this)但没有改变. 那么,有人有一个解决方案来强制编译器在子应用程序中显式链接Flex组件和他的皮肤吗? 解决方法
根据
Flexmaniak.pl,可以通过将-keep-all-styles-selectors添加到flex编译器参数来解决.
Flex 4.5.1的正确语法是-keep-all-type-selectors (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |