2

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

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

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

<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-namespaced 组件。为什么是这样? 为什么这在 Flex SDK 4.1.0 上编译成功,但在 Flex SDK 4.5.1 上编译不成功,导致必要的命名空间更改的原因是什么?

4

1 回答 1

3

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

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

Anywho, back to your question, I see it the other way in my project (s:Spacer works in Flash Builder, not in FlexMojos). Personally, I feel that these namespace shouldn't intersect and as a developer it's easier to just specify the exact namespace and not bother with the namespace trickery.

于 2011-09-30T03:25:54.567 回答