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

zz/2024/6/13 22:12:22

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。


http://www.ngui.cc/zz/2748836.html

相关文章

从互动广告到iOS开发

转&#xff1a;http://kevincao.com/2012/04/guide-to-ios/#more-1991 一年以前&#xff0c;我还在做各种Flash网站&#xff0c;而现在却是拥有一间小工作室的iOS独立开发者。从互动广告行业转型到移动互联网&#xff0c;也许也是正在阅读本文的你心中的一点小念头。即便你仍然…

Mobiscroll — 配合jQuery Mobile 的日期选择控件附DEMO

官方demo:http://demo.mobiscroll.com/<script type"text/javascript" src"../../mweb_js/jquery-1.9.1.js"></script><script type"text/javascript" src"../../mweb_js/datepicker/mobiscroll.core-2.5.2.js"><…

拖拽演示,原生封装+JQ (详解)

http://www.w3cfuns.com/blog-5450759-5401651.html 原始拖拽&#xff0c;三点注意&#xff1a; 1&#xff1a;onmousemove与onmouseup需要嵌套在onmousedown内&#xff0c;因为拖拽时鼠标的悬浮于弹起都处在按下的状态中触发的。 2&#xff…

【jQwidgets】简单封装示例

本示例主要是根据div里的属性&#xff0c;根据divID动态生成列columns对象&#xff0c;方便重用、增加、删除&#xff1b; 同时source里的datafield对象也可以用同样的方法获取&#xff0c;但此例未做此操作。 HTML: JAVASCRIPT: 调用 【参数说明】&#xff1a;数据div ID&a…

【jQWidgets】日历支持中文插件

由于jQwidgets中的日历不支持中文&#xff0c;自己加了一 个方便用。 <script type"text/javascript" src"../../jqwidgets/globalization/globalize.js"></script> 路径&#xff1a;\jqwidgets\globalization\ 文件&#xff1a;globalize.cul…

判断PC/Mobile设备类型

<!-- 判断PC/Mobile设备类型 --> <script type"text/javascript"> //方法一&#xff1a; function browserRedirect() { var sUserAgent navigator.userAgent.toLowerCase(); var bIsIpad sUserAgent.match(/ipad/i) "ipad"; var bIsIph…

基于CSS3的WEBAPP横向滑动模式演化

前言 随着移动网络速率和设备硬件水平的不断提升&#xff0c;webapp的发展更加的native化&#xff0c;其表现效果和性能也会越来越好&#xff0c;在可预计的未来很有可能替代native或者平起平坐&#xff0c;那么我们研究更好的交互体验是非常有必要的。 目前我们所常见的webapp…

JavaScript闭包面试题

由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题&#xff0c;似乎很有趣&#xff0c;就当做了一道题去面试&#xff0c;发现几乎没人能全部答对并说出原因&#xff0c;遂拿出来聊一聊吧。 先看题目代码&#xff1a; function fun(n,o) {console.log(o)return {f…

本地开发环境配置Nginx

本地开发环境配置Nginx 目的&#xff1a;前端本地开发环境联调测试服务器上的后端&#xff0c;Cookie不能跨域问题 Mac系统 1.安装Nginx&#xff1a; brew install nginx 安装目录&#xff1a;/usr/local/Cellar/nginx/ 配置文件路径&#xff1a;/usr/local/etc/nginx 日志…