我有一个Flash Builder项目,我正在从SDK 4.1.0迁移到4.5.1。这是一个相对容易的改变(我们正在使用maven来编译我们的版本,并且在更新到4.5.1依赖关系后能够获得成功的版本)。从4.1.0升级到Flex SDK 4.5.1会导致某些mx组件的命名空间编译错误
如上所述,该项目使用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>
这只是一个例子,仅发生于特定的火花命名空间中的组件。为什么是这样? 为什么使用Flex SDK 4.1.0编译为OK,而不是使用Flex SDK 4.5.1,以及必需的命名空间更改的原因是什么?
虽然听到我并不是唯一一个看到这个问题的人,但很高兴能够确认Adobe对他们的组件所做的确切更改。名称空间是否明显改变,是因为Adobe在之前“翻译”了xmlns名称空间,或者是否存在实际的组件名称空间更改? –