我目前正在开发一个使用 Flex 3.6 创建的 Adobe Flex Air 项目!但是现在应该变成了iPad的App,但是Flash Builder从Flex 4.6开始只能将项目导出为App。所以我正在尝试将项目从 Flex 3.6 转换为 4.6,我想这应该很容易做到,但是库和/或命名空间存在一些问题,这让我感到困惑。这就是我的 Main-mxml 的启动方式:
<s:Application xmlns:mx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:MyComp="*"
xmlns:local="*"
xmlns:srv="generated.webservices.*"
width="1366"
applicationComplete="init()"
backgroundGradientColors="[0xffffff,0xffffff]"
borderColor="#ffffff"
color="#eaeaea"
fontSize="14"
horizontalScrollPolicy="off"
layout="absolute"
paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"
verticalScrollPolicy="off">
但我得到了错误:
`Attribute "mx" bound to namespace "http://www.w3.org/2000/xmlns/" was already specified for element "s:Application".`
但是如果我删除这条线
`xmlns:mx="library://ns.adobe.com/flex/mx"`
那么我当然不能再使用例如 mx:VBox 并且必须重构整个项目。
我尝试了一些使用 Flex 4.6 的测试示例,例如
<?xml version="1.0"?>
<!-- containers\layouts\BoxSimple.mxml -->
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark">
<mx:Box direction="vertical"
borderStyle="solid"
paddingTop="10"
paddingBottom="10"
paddingLeft="10"
paddingRight="10">
<mx:Button id="fname" label="Button 1"/>
<mx:Button id="lname" label="Button 2"/>
<mx:Button id="addr1" label="Button 3"/>
<mx:ComboBox id="state">
<mx:ArrayList>
<fx:String>ComboBox 1</fx:String>
</mx:ArrayList>
</mx:ComboBox>
</mx:Box>
</s:Application>
但在这里我得到了错误
`"Could not resolve <mx:Button> to a component implementation." `and more like this.
现在我的问题是: 1. 可以使用所有三个命名空间
`(xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark")`
对?我在互联网上的几个示例中看到了这一点,所以我认为它必须有效。
- 我是否必须引用/添加外部库才能将 Flex 4.6 与这 3 个命名空间一起使用?
- 是否有从 Flex 3.6 迁移到 4.6 的简单通用方法?是否有必要进行更改或必须在 4.6 中工作,即使是在 3.6 中开发的?
此外,我对 Flex 比较陌生,尽管我认为这并不难。
提前致谢
问候,
最大 B