Spark组件、Halo组件和Flex 4命名空间

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组件吧。

 

2.新组件或容器
新的控件和容器

Flex 3 Halo Component     Flex 4 beta Spark Component
mx.controls.Button          spark.components.Button
mx.controls.ButtonBar       spark.components.ButtonBar
mx.controls.CheckBox        spark.components.CheckBox
mx.controls.ComboBox        spark.components.DropDownList
mx.controls.HorizontalList  spark.components.List
mx.controls.HRule           spark.primitives.Line
mx.controls.HScrollBar      spark.components.HScrollBar
mx.controls.HSlider         spark.components.HSlider
mx.controls.Image           spark.primitives.BitmapImage
mx.controls.LinkBar         spark.components.ButtonBar
mx.controls.LinkButton      spark.components.Button (with a custom skin)
mx.controls.List            spark.components.List
mx.controls.NumericStepper  spark.components.NumericStepper
mx.controls.RadioButton     spark.components.RadioButton
mx.controls.RadioButtonGroupspark.components.RadioButtonGroup
mx.controls.TextArea        spark.components.TextArea
mx.controls.TextInput       spark.components.TextInput
mx.controls.TileList        spark.components.List (with a TileLayout)
mx.controls.ToggleButtonBar spark.components.ButtonBar
mx.controls.VideoDisplay    spark.components.VideoPlayer
mx.controls.VRule           spark.primitives.Line
mx.controls.VScrollBar      spark.components.VScrollBar
mx.controls.VSlider         spark.components.VSlider
mx.core.Application         spark.components.Application
mx.core.Window              spark.components.Window
mx.core.WindowedApplication spark.components.WindowedApplication
mx.containers.Canvas        spark.components.Group
mx.containers.HBox          spark.components.HGroup
mx.containers.Panel         spark.components.Panel
mx.containers.Tile          spark.components.Group (with a TileLayout)
mx.containers.VBox          spark.components.VGroup

3.未变动组件
mx.controls.Alert
mx.controls.ColorPicker
mx.controls.DataGrid
mx.controls.DateChooser
mx.controls.DateField
mx.controls.Menu
mx.controls.MenuBar
mx.controls.PopUpButton
mx.controls.PopUpMenuButton
mx.controls.ProgressBar
mx.controls.RichTextEditor
mx.controls.TabBar
mx.controls.Tree
mx.containers.Accordion
mx.containers.ApplicationControlBar
mx.containers.ControlBar
mx.containers.DividedBox
mx.containers.Form
mx.containers.Grid
mx.containers.TabNavigator
mx.containers.TitleWindow
mx.containers.ViewStack

4.共用的S和mx的控件

 

 

 

   
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。

你可能感兴趣的:(Spark组件、Halo组件和Flex 4命名空间)