加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

未在子应用程序中加载的外观(在Flex中)

发布时间:2020-12-15 01:47:29 所属栏目:百科 来源:网络整理
导读:我们尝试开发具有多个抽象层的Flash游戏引擎.此flex项目包含: 申请(1) – 加载类(2) – 加载另一个实现Flex组件(4)的类(3). 加载使用SWFLoader.最后一个Flex组件(4)只是一个具有AdvancedDataGrid的组.我们没有定义皮肤所以我认为它必须采用默认皮肤. 问题是
我们尝试开发具有多个抽象层的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).但这意味着我必须为组件的每个部分手动添加每个皮肤,这是一个非常无聊的解决方案.
>第二个解决方案是在第一个Application(1)中创建一个AdvancedDataGrid.我想它将AdvancedDataGrid添加到编译和链接过程中.但是,这个解决方案并不好,因为Application(1)必须知道Flex组件(4)使用了哪些UIComponents.

我们尝试了编译器选项“keep-all-type-selectors = true”(如this)但没有改变.

那么,有人有一个解决方案来强制编译器在子应用程序中显式链接Flex组件和他的皮肤吗?

解决方法

根据 Flexmaniak.pl,可以通过将-keep-all-styles-selectors添加到flex编译器参数来解决.

Flex 4.5.1的正确语法是-keep-all-type-selectors

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读