关于flash builder 4 命名空间问题 【xmlns】

12 篇文章 0 订阅
 
前两天开始使用flash builder4,可能很多人都跟我一样,拿着flex3的书用flash builder 4敲代码,一敲发现不是没有控件就是各种提示错误,明明是照书上敲的啊……其实就是最开始那一行搞的鬼,别用系统自动生成的设置:
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/halo"
xmlns:s="library://ns.adobe.com/flex/spark"
这 三个命名空间是新增的,控件和方法跟原来都不一样了。改成xmlns:mx="http://www.adobe.com/2006/mxml"这一条就 完全能兼容flex3的代码了,再转到设计模式看看,甚至连spark的控件都变成halo的了(就是原来flex builder 3的设计模式),Adobe为flex4写了并行的两个包,原来的MX还能用,但是默认推荐用spark的(功能更强大,但是现在一本书都没有,除了帮助 文档),要用flex3 的书学习的话,只要改命名空间为原来的xmlns:mx="http://www.adobe.com/2006/mxml"就可以完全兼容了,连代码提 示都会出来(像VBox这样的spark删掉的空间也出来啦,可以直接拖拽了)。
前几天,不知道网上哪个不懂装懂的……居然说,要在flash builder 4里面运行flex3的代码要把原有的命名空间改成现在系统生成的那三条,还要加什么编译变量……完全反着来了!!!很不幸,我跟看到宝似的,马上照做, 结果整了两天,各种莫名奇妙的错误出来,连复制粘贴的源代码都运行错误,郁闷死了,大家别在犯同样的错误啊~flash builder 4 本来就兼容flex3 的代码,开关就是那条命名空间声明。

这里还有一篇详细说命名空间 的:http://wonlen.javaeye.com/blog/402467
得了我把它贴过来吧:

众所周知,Flex SDK 4(Gumbo)增加了一些命名空间,请看如下:

xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/halo"
xmlns:s="library://ns.adobe.com/flex/spark"

1、 xmlns:fx="http://ns.adobe.com/mxml/2009"
定义了顶级的ActionScript 3.0一些顶级的方法、全局函数和全局常量等内容。
例如我们常用的一些数据类型:Number、int、Boolean、Array、 String等。
在《Adobe Flex 4 Beta Language Reference》里面的这个链接中会有详细描述。
关于 这个命名空间的内容,全部定义在Flash Builder安装目录下面的sdks\4.0.0\frameworks\mxml-2009-manifest.xml里面。

2、 xmlns:mx="library://ns.adobe.com/flex/halo"
使用过Flex SDK 2 和 Flex SDK 3的朋友就不会陌生了,这个命名空间(NameSpace)里面的内容是mx.*下面的全部内容,请注意一下,其中halo的名字就是Flex SDK 2 和 Flex SDK 3里面默认的CSS样式。
关于这个命名空间的内容,全部定义在Flash Builder安装目录下面的sdks\4.0.0\frameworks\halo-manifest.xml里面。

3、 xmlns:s="library://ns.adobe.com/flex/spark"
这是Flex SDK 4(Gumbo)里面新增加的组件库。包含了Flex SDK 4(Gumbo)里面全部的spark.* 和 flashx.* packages里面的部分内容(text framework class)
关于这个命名空间的内容,全部定义在Flash Builder安装目录下面的sdks\4.0.0\frameworks\spark-manifest.xml里面。

其中的一些我认 为必要了解的内容:
1、xmlns:mx="library://ns.adobe.com/flex/halo" 和 xmlns:s="library://ns.adobe.com/flex/spark"是平级的,而xmlns:fx="http: //ns.adobe.com/mxml/2009"是ActionScript 3.0顶级的内容。也就是说,如果在某一个Project里面只使用halo的话,则可以在Application里面去掉spark的定义。(反之亦 然)

2、xmlns:mx="library://ns.adobe.com/flex/halo" 和 xmlns:s="library://ns.adobe.com/flex/spark"其中有一部分是公用的,这点请大家注意一下(关于为什么是公用 的,我猜测是为了让Flex SDK 2 和 Flex SDK 3迁移到Flex SDK 4(Gumbo)的过程更方便一些造成的。)

3、 xmlns:fx="http://ns.adobe.com/mxml/2009"保留Flex SDK 2 和 Flex SDK 3时代的一些顶级包以外,还新增加了一些标签, 如:<Declarations>、<DesignLayer><Library><Private><Reparent>

4、 当需要定义一个在xmlns:mx="library://ns.adobe.com/flex/halo" 和 xmlns:s="library://ns.adobe.com/flex/spark"都存在的组件或者意义相同的组件,Adobe建议使用 spark,而不是原来的halo。

PS:本篇文章部分内容来自Using ADOBE® FLEX® 4 和 ADOBE FLEX  Gumbo Preview Release Features and Migration Guide 这两篇Adobe的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值