Flex 4里的fx、mx以及s命名空间

Flex 4带给我们的,是全新的命名空间。了解这些命名空间必定是一件好事情。Flex 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” 
1、xmlns:fx=”http://ns.adobe.com/mxml/2009″
        fx命名空间下包含ActionScript顶级元素和内建到MXML编译器里的标签。

        前者ActionScript顶级元素就是指 Object、Number、Boolean以及Array对象等等,在《Adobe Flex 4 Beta Language Reference》的顶级包(Top Level)里可以查看完整的顶级元素。后者内建到MXML编译器里的标签包括<fx:Script>、<fx:Declarations>和<fx:Style>等等,在《Adobe Flex 4 Beta Language Reference》附录(Appendixes)里的“MXML Only Tags”可以查看完整的编译器元素。值得注意的是,这个命名空间并不包含 Halo 和 Spark 组件(Halo是以前版本的组件库,而Spark是Flex 4新出的组件库)。在Flash Builder安装目录下可以找到“mxml-2009-manifest.xml”文件(例如我的电脑是C:\Program Files\Adobe\Flash Builder Beta\sdks\4.0.0\frameworks\mxml-2009-manifest.xml),这个xml文件描述了完整的ActionScript顶级类。不过你可以注意到,它并没有包含MXML编译器标签,那是因为这些标签是内建到MXML编译器。

2、xmlns:mx=”library://ns.adobe.com/flex/halo”
        mx命名空间包含着放在 mx.* 包里那些组件,Flex图表、Flex数据可视化组件等等。对Flex 3很熟悉的话,mx包里的组件你也不陌生了。在Flex 4 SDK的安装目录下可以找到“halo-manifest.xml”文件(例如我的电脑是C:\Program Files\Adobe\Flash Builder Beta\sdks\4.0.0\frameworks\halo-manifest.xml),这个XML文件列出了所有组件了。

3、xmlns:s=”library://ns.adobe.com/flex/spark”
        s命名空间可真是新鲜事了,spark.* 包里的组件都在这个命名空间里,不只spark包,flashx.*包的text framework类也在这个命名空间里。这个命名空间包含不少RPC类,例如 WebService、HTTPService和RemoteObject组件,这些组件同时也在mx命名空间下,也就是说,创建这些组件时,你不但可以使用“S:”前缀,也可以使用“mx:”前缀。其实不只这些RPC组件共用两个命名空间,像graphics、effect和state类也是共用 s 和 mx 命名空间的。在Flex 4 SDK安装目录下打开spark-manifest.xml文件来看看完整的spark组件吧。

以下列出共用 s 和 mx 命名空间的类:

Category Class 
RPC classes mx.messaging.channels.AMFChannel 
mx.rpc.CallResponder 
mx.messaging.ChannelSet 
mx.messaging.Consumer 
mx.messaging.channels.HTTPChannel 
mx.rpc.http.mxml.HTTPService 
mx.messaging.Producer 
mx.rpc.remoting.mxml.RemoteObject 
mx.rpc.remoting.mxml.Operation 
mx.messaging.channels.RTMPChannel 
mx.messaging.channels.SecureAMFChannel 
mx.messaging.channels.SecureStreamingAMFChannel 
mx.messaging.channels.SecureHTTPChannel 
mx.messaging.channels.SecureStreamingHTTPChannel 
mx.messaging.channels.SecureRTMPChannel 
mx.messaging.channels.StreamingAMFChannel 
mx.messaging.channels.StreamingHTTPChannel 
mx.rpc.soap.mxml.WebService 
mx.rpc.soap.mxml.Operation 
mx.data.mxml.DataService 
 
Graphics classes mx.graphics.BitmapFill 
mx.geom.CompoundTransform 
mx.graphics.GradientEntry 
mx.graphics.LinearGradient 
mx.graphics.LinearGradientStroke 
mx.graphics.RadialGradient 
mx.graphics.RadialGradientStroke 
mx.graphics.SolidColor 
mx.graphics.SolidColorStroke 
mx.graphics.Stroke 
mx.geom.Transform 
 
Effedt classes mx.effects.Parallel 
mx.effects.Sequence 
mx.states.Transition 
mx.effects.Wait 
 
States classes mx.states.State 
mx.states.AddItems 
 

        想更快了解Flex 4,可以下载《Adobe Flex 4 Help》看一下。

其中的一些我认为必要了解的内容:
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。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zjhzyzc/archive/2009/09/27/4602322.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值