【问题标题】:Upgrade to Flex SDK 4.5.1 from 4.1.0 causes namespace compile errors for certain mx components从 4.1.0 升级到 Flex SDK 4.5.1 会导致某些 mx 组件的命名空间编译错误
【发布时间】:2011-09-29 23:21:08
【问题描述】:

我有一个从 SDK 4.1.0 迁移到 4.5.1 的 Flash 构建器项目。这是一个相对容易的更改(我们使用 maven 进行构建,并且在更新到 4.5.1 依赖项后能够成功构建)。

如前所述,该项目使用 maven 和 flexmojos 构建良好。问题是在 Flash Builder 中打开项目时。导入 maven 项目,然后通过运行 maven flexmojos:flexbuilder build 命令设置为 flex 项目。

问题在于当使用 s: 命名空间指定的某些 mx 组件不再被 IDE 接受并导致错误时。例如,要编译以下内容:

<s:states>
    <s:State name="normal" />
    <s:State name="disabled" />
</s:states>

s:State 必须更改为 mx 命名空间:

<s:states>
    <mx:State name="normal" />
    <mx:State name="disabled" />
</s:states>

这只是一个示例,仅适用于某些 spark 命名空间组件。为什么是这样? 为什么使用 Flex SDK 4.1.0 编译成功,但使用 Flex SDK 4.5.1 编译失败,需要更改命名空间的原因是什么?

【问题讨论】:

    标签: apache-flex maven flash-builder flexmojos


    【解决方案1】:

    我在使用 FlexMojos 时也发现了同样的问题,因为 Adob​​e 在为 mx 组件(例如 State 和 Spacer)指定 spark 命名空间方面似乎做了一些小技巧。

    另外,如果您使用的是flexmojos:flexbuilder,则意味着您还使用了旧版本的 FlexMojos(3.8?)。现在有 4.0 版(RC2),但是,flexbuilder 目标目前已被删除。

    任何人,回到你的问题,我在我的项目中看到了另一种方式(s:Spacer 在 Flash Builder 中工作,而不是在 FlexMojos 中)。就个人而言,我觉得这些命名空间不应该相交,作为开发人员,只需指定确切的命名空间而不用担心命名空间的诡计会更容易。

    【讨论】:

    • 虽然很高兴听到我不是唯一一个看到这个问题的人,但如果能确认 adobe 对导致它的组件所做的确切更改,那就太好了。命名空间更改是否明显是因为 adobe 之前“翻译”了 xmlns 命名空间,还是存在实际的组件命名空间更改?
    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2011-08-26
    • 2011-12-24
    • 2015-01-30
    相关资源
    最近更新 更多