Flex 4 SDK – MXML 2009

Flex sdk 4.5.0 Flex sdk 4.5.0 下载网址,可提供下载链接,里面有本人联系方式,也可以通过联系方式直接联系本人,本人可以直接发送给各位需要的同学,由于文件太大,所以只好以这种方式了,欢迎下载! 立即下载

Flex 3的命名空间

Flex 3定义了唯一的MXML命名空间,即MXML 2006。在Flex Builder 3中声明MXML 2006命名空间的默认格式如下:

xmlns:mx="http://www.adobe.com/2006/mxml"

值得注意的是,很多初学者误认为”mx”为命名空间。事实上,上面的语句中”mx”只是命名空间的前缀,或者说是一个“别名”。你可以将mx修改为任意值,甚至可以使用“空前缀”,例如:

<Application xmlns="http://www.adobe.com/2006/mxml"> <Button /> </Application>

MXML 2009

如果你使用Flash Builder 4创建一个Flex 4应用程序,会发现默认情况下FB为你创建了3个命名空间,如下所示:

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

情况似乎复杂了?为了更好的理解Flex 4中的命名空间,首先需要介绍两个名词:“语言级命名空间”和“组件级命名空间”。

语言级命名空间

语言级命名空间声明了一个MXML文件所使用的语言版本,上面实例中,
http://ns.adobe.com/mxml/2009即为语言级命名空间,表示当前MXML文件使用的语言版本为MXML 2009。语言级命名空间具有如下特点:

  • 每个MXML文件必须声明且只能声明一个语言级命名空间,Flex编译器根据这个命名空间来确定以何种方式编译该MXML。
  • 在一个应用程序中的多个MXML文件可以使用不同的命名空间(MXML 2006或MXML 2009)。

除了声明语言版本外,语言级命名空间还定义了一组标签,如<Script>,<Style>等等。这些标签可以理解为MXML的“关键字”。在MXML 2009中保留了MXML 2006的全部语言级标签,并增加了一些新的标签,以下是完整的列表:(粗体为Flex 4新增标签,我们将在下一章中具体介绍)

  • <fx:Binding>
  • <fx:Component>
  • <fx:Metadata>
  • <fx:Model>
  • <fx:Script>
  • <fx:Style>
  • <fx:Declarations>
  • <fx:Library>
  • <fx:Definition>
  • <fx:Private>
  • <fx:Reparent>
  • <fx:DesignLayer>

另一方面,语言级命名空间还定义了ActionScript3中的基础数据类型的映射:

  • <fx:Array>
  • <fx:Boolean>
  • <fx:Class>
  • <fx:Date>
  • <fx:Function>
  • <fx:int>
  • <fx:Number>
  • <fx:Object>
  • <fx:RegExp>
  • <fx:String>
  • <fx:uint>
  • <fx:Vector>
  • <fx:XML>
  • <fx:XMLList>

组件级命名空间

顾名思义,组件级命名空间定义了组件标签的集合,每一个组件标签都与一个ActionScript类或MXML文件相对应。在Flex 4中共定义了两个组件命名空间,分别是:
Spark组件空间(”library:ns.adobe.com/flex/spark“,默认别名为“s”)
Halo组件空间(“library:ns.adobe.com/flex/halo”,默认别名为”mx”)

之所以需要两个命名空间主要是为了回避组件命名上的冲突问题。事实上,在Flex 4的早期的构建中,所有Spark组件类均以Fx作为前缀以和Halo组件区别,例如Spark中的Application组件被命名为FxApplication,Button组件被命名为FxButton,以此类推。但最终Flex SDK的开发团队放弃了这种古怪的命名方式,而改为使用不同的命名空间。

例1:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<?xml version="1.0" encoding="utf-8"?> <s:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"xmlns:mx="library://ns.adobe.com/flex/halo"> <fx:Script> <![CDATA[ protected function sparkButton_onClick(event:MouseEvent):void { haloButton.label = "Flex 4 Rocks!";	} ]]></fx:Script>   <s:Button id="sparkButton" label="Spark Button"click="sparkButton_onClick(event)" /> <mx:Button id="haloButton" label="Halo Button"y="30" /> </s:Application>

例1可以算是Flex 4的Hello,world程序,非常简单。它分别创建了一个Spark Button组件和一个Halo Button组件,并在点击Spark Button时将Halo Button的label设置为“Flex 4 Rocks!”。

Flex组件到MXML标签的映射

前面曾经提到过,每一个MXML组件标签都对应着一个ActionScript类或者MXML文件类。那么,Flex是如何建立起这种映射关系的呢?
其实原理并不复杂,这种映射关系主要是通过一个清单文件(Manifest.xml)来定义,一个典型的清单文件如下:

<?xml version="1.0"?> <componentPackage> <component id="Accordion"class="mx.containers.Accordion"/> <component id="AddChild" class="mx.states.AddChild"/><component id="AddChildAction" class="mx.effects.AddChildAction"/> .... </componentPackage>

Flex SDK在编译时,会向编译器提供清单文件和相对应的命名空间,如library://ns.adobe.com/flex/halo。编译后的Flex框架中,就包含了那些MXML标签与实际类定义的映射关系了,如下图所示:

注意:多个清单文件可以使用相同的命名空间编译,同一个类定义也可以出现在多个清单文件中,例如,对于HTTPService组件,你可以使用Halo组件空间来引用(<mx:HTTPService />),也可以使用Spark组件空间(<s:HTTPService />)来引用。

由于Flex框架本身被分为若干个工程(Halo, Spark, RPC, AIR-framework, TextLayout等等),所以每个工程下面也都有各自定义清单文件,可以在下面目录找到(这里仅列出两个):
For Halo: {SDK_ROOT}/frameworks/projects/frameworks/manifest.xml
For Spark: {SDK_ROOT}/frameworks/projects/spark/manifest.xml

值得注意的是,Flex框架组件映射的方法也可以为一般开发者所使用,可以为你自己的类库创建这种URI风格的命名空间。使用URI而不是包结构类型的命名空间的一大好处是,在MXML中引用的标签可以做与实际类所在的包结构无关,即使未来某个类由于重构,其所在的包的目录结构变化了,引用改类的MXML也丝毫不会受到影响。
具体如何创建URI风格的命名空间.

介绍 了MXML 2009新增的标签,包括:

  • Declarations

  • Vector

  • Library

  • Definition

  • Private

  • Reparent

<Declarations />

Declarations标签是Flex 4中最常用的新增标签。

在Flex 3中,对于一个MXML组件的直接子元素,可以有以下几种情况:

1. 属性标签,例如:

<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" > 
<mx:text > 
<mx:String > test</mx:String > 
</mx:text > 
</mx:Label >

2. 作为默认属性的值,例如: 

List的默认属性为DataProvider

<mx:List xmlns:mx="http://www.adobe.com/2006/mxml" > 
<mx:ArrayCollection > 
....
</mx:ArrayCollection > 
</mx:List >

 

3. 作为容器的Children:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > 
<mx:Button /> 
<mx:Label /> 
</mx:Canvas >

4. 声明并创建非可视化对象:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > 
<mx:HTTPService id="sevice" /> 
</mx:Canvas >

在Flex 4中,对于MXML组件的直接子元素有着更加规范的定义,即:所有直接子元素或者是组件的属性标签,或者是作为组件默认属性的值而存在。 而 容器的默认属性即为其Children的集合(例如Group的默认属性为mxmlContent,DataGroup的默认属性为 dataProvider)。

 

而对于最后一种情况,在Flex 4中,在MXML中创建非可视化对象,如HTTPService, Effect, 基本数据类型等等,必需通过<Declarations/>标签来完成。例如声明一个HTTPService对象:

<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library:ns.adobe.com/flex/spark" > 
<fx:Declarations > 
<s:HTTPService id="service" /> 
</fx:Declarations > 
</s:Group >

上面的代码等价于ActionScript:

public MyGroup extends Group { 
private var service: HTTPService = new HTTPService( ) ;
}

值得注意的是,Declarations标签也可以用来声明、创建任何可视化组件 ,但是使用该标签创建的组件不 会被加入到DisplayList中,也不会被初始化。你可以在需要的时候再使用它。

<Vector />

Vector是Flash Player 10中新增加的数据类型(结构),大多数情况下,使用Vector比使用Array更加高效。在Flex 4中,你可以通过MXML来创建一个Vector对象,例如:

<fx:Declarations > 
<fx:Vector id="myVector" type="String" fixed="false" /> 
</fx:Declarations >

上述代码相当于ActionScript:

public var myVector: Vector.< String> = new Vector.< String> ( 0 ,false ) ;

<Library />和<Definition />

Library标签允许你为当前的MXML组件声明一个”类库“。相应地,Definition标签可以定义该类库中的一个”类”。基本的语法规则 如下:

 

  • 如果使用Library标签,则它必须是MXML或FXG文档中的第一个标签。

  • Library标签可以包含一个或多个Definition标签。

  • 必须为Definition标签提供name属性作为”类名”,同时Definition标签必须有且只能有一个直接子标签作为其所定义的类的基 类。

  • 使用Definition标签定义的类也可以使用<fx:Script />和<fx:MetaData />标签。

  • 由Definition标签定义的类属于默认包,需使用MXML 2009的命名空间来引用。如类名为MyClass,则在MXML中使用该类的标签为<fx:MyClass/>。

  • Library和Definition标签不可嵌套使用,即在由Definition定义的类中,不能使用Library和Definition 标签。

下面的代码中,使用Library和Definition标签创建了MyClass类及其子类MySubClass:

<!-- MyApp.mxml --> 
<s:Applicaiton xmlns:fx=... > 
<fx:Library > 
<!-- 此处定义了一个名为MyClass的类,继承自Group类 --> 
<fx:Definition name="MyClass" > 
<s:Group > 
<s:Rect width="200" height="200" > 
<s:fill .../> 
</s:Rect > 
</s:Group > 
</fx:Definition > 
<!-- 此处定义了一个名为MySubClass的类,继承自MyClass类> 
<fx:Definiton name="MySubClass" > 
<fx:MyClass /> 
</fx:Definition > 
</fx:Library > 
 
<!-- 使用MyClass和MySubClass类 --> 
<fx:MyClass /> 
<fx:MySubClass /> 
</s:Application >

此外,由Definition定义的类的实例,不能赋予id属性(例如,在上面代码中,如果为MyClass实例声明id属性会造成编译错误)。这 本质上是由Library的“私有性”决定的。在大多数情况下,该标签会在FXG中使用,用于定义可重用的图形元素。

 

小技巧 

事实上,尽管不能为Definition定义的类的实例赋予id属性,我们仍然可以获取这些类的 实例的引用,通过查看Flex编译后的AS代码(使用-keep参数)可以发现:所有由Definition定义的类最终会被转化为类名 为”MXML类名_definitionN.as”这样的独立ActionScript类 。

例如,上面例子(MXML类名为 MyApp)中的MyClass和MySubClass最终会被转化为MyApp_definition1和MyApp_definition2。在确定 这些类的实际类名后,我们可以通过一些系统事件来获取这些类的引用并对其进行操作,例如:

<!-- Test.mxml --> 
<?xml version="1.0" encoding="utf-8" ?> 
<s:Application xmlns:fx="..." xmlns:s="..." > 
<fx:Library > 
<fx:Definition name="MyRect" > 
<s:Group width="100" height="100" > 
....
</s:Group > 
</fx:Definition > 
</fx:Library > 
 
<fx:MyRect creationComplete="myrect1_creationComplete(event)" /> 
 
<fx:Script > 
<![ CDATA[ 
import mx.events.FlexEvent; 
private var myRect:Test_definition1 ; 
 
<!-- 通过事件获取实例的引用 --> 
protected function myrect1_creationComplete(event:FlexEvent):void
{
myRect = event.target as Test_definition1;
myRect.x = 200;
}
]]>
</fx:Script > 
</s:Application >

<Private />

Private标签用于提供MXML和FXG文档的元信息,标签内的内容会被编译器忽略。尽管如此,你必须保证其内容是有效的XML格式。例如:

<fx:Private > 
<Author> Jinni Cao</Author> 
<Version> 1.0</Version> 
<Site> http://www.SWFever.com</Site> 
</fx:Private >

Apache Flex SDK 4.16.0整体打包 Apache Flex SDK 4.16.0打包;flashplayer25独立安装;flexsdk416源码;flexsdk416文档 立即下载

相关推荐

GPU运维面试题

【代码】GPU运维面试题。

u011220233的博客 700

[Flex]Flex SDK 4(Gumbo)浅析SDK 4默认的Spark样式与Halo样式

通过《Flex SDK 4(Gumbo)更方便的自定义样式、自定义SparkSkin》这三篇文章,我们可以得到一个结论:Spark组件和Halo组件是可以共享、公用一套皮肤的。本篇文章,让我们分析一下Flex SDK 4(Gumbo)里面的默认皮肤式样(主要是Spark组件和Halo组件)。通过分析Flex SDK 4(Gumbo)默认的皮肤,有助于我们理解、学习如何使用SparkSkin、Ski

Kenshin's Flex Blog 451

C2000 CLA协处理器:嵌入式实时控制性能优化与实战指南

在嵌入式实时控制系统中,主CPU常因高频率、低延迟的控制算法而面临性能瓶颈。为解决此问题,协处理器技术应运而生,它通过硬件并行架构分担计算密集型任务,从而提升系统整体性能。其核心原理在于独立的计算单元与总线设计,能够实现近乎零延迟的响应,这对于电机驱动、数字电源等闭环控制场景具有极高的技术价值。本文聚焦于德州仪器C2000系列微控制器中的控制律加速器(CLA),深入解析其作为独立浮点协处理器如何通过任务调度与消息RAM通信机制,有效实现性能倍增,并提供了从内存配置到代码调试的完整工程实践方案。

weixin_29192211的博客 305

flex3 使用sdk4

up vote 1 down vote I beat my head against this a bit and after look all over the net I combined a few solutions and finally came up with one that works for me. Try this to get it to ...

weixin_30810583的博客 176

基于Multisim的模电调幅发射机仿真设计

振荡器产生的高频信号的功率很小,所以有必要对高频信号进行功率放大,有利于信号的调制发射。缓冲电路将主振荡器和高频功放电路相隔离,以减小功放电路对主振荡器的影响。缓冲电路可以用射极跟随器电路来实现,其作用就是前后级的阻抗相互匹配,减小前后级的影响。总电路的仿真结果见下图:示波器1~4分别是主振荡器、缓冲电路、高频放大电路和调幅电路的输出波形。由于载波频率稳定度≤10-3,所以可以采用并联型改进电容反馈式三端振荡器(Seiler电路)谐振回路,滤除其他频率的成分,得到与载波(假设。(1)缓冲电路的设计与实现。

Eve223322的博客 4593

matlab 受约束的 Delaunay 三角剖分【2025最新版】

matlab内置调用函数实现受约束的 Delaunay 三角剖分并将结果保存为STL文件

点云侠的博客 1875

Flex设置运行的Mxml文件

项目点击右键---》properties---》Flex应用程序---》删除原来的运行的.mxml文件---》添加新的.mxml文件----》点击设置为默认值

u010943800的专栏 786

YOLOv11改进 | 特殊场景检测篇 | 利用图像去雾网络UnfogNet改进yolov11图像雾天检测能力(全网独家首发改进)

本文给大家带来的改进机制是利用UnfogNet超轻量化图像去雾网络,我将该网络结合YOLOv11针对图像进行去雾检测(也适用于一些模糊场景),我将该网络结构和YOLOv11的网络进行结合同时该网络的结构的参数量非常的小,我们将其添加到模型里增加的计算量和参数量基本可以忽略不计这是非常难得的,因为其也算是一种图像增强算法,同时本文的内容不影响其它的模块改进可以作为工作量凑近大家的论文里,非常的适用,图像去雾检测为群友最近提出的需要的改进。欢迎大家订阅我的专栏一起学习YOLO!

Snu77的博客 1629

Flex 4 SDK 新特性教程系列 – MXML 2009

这是Flex 4 SDK 新特性教程系列的第3章。本章介绍了Flex 4引入的MXML 2009命名空间以及Flex组件与命名空间映射的机制。 Flex 3的命名空间Flex 3定义了唯一的MXML命名空间,即MXML 2006。在Flex Builder 3中声明MXML 2006命名空间的默认格式如下:xmlns:mx="http://www.adobe.com/200

895

PCL 贪婪投影三角剖分算法【2025最新版】

本博客在学习PCL中的贪婪投影三角算法的基础上,实现了使用彩色点云重建彩色模型的应用案例。博客长期更新,最近一次更新时间为:2025年7月6日。

点云侠的博客 37万+

第02章:HSA-Runtime架构概览

摘要: 本章深入解析HSA Runtime的三层架构设计,包括公共API层(C语言接口)、核心实现层(C++业务逻辑)和驱动抽象层(硬件交互)。重点介绍了Runtime的核心组件(Agent、Queue、Signal、Memory)及其关系,以及初始化流程、配置选项和调试功能。通过学习,读者将掌握HSA Runtime的整体架构,为后续模块学习奠定基础。

图形/计算GPU的驱动与虚拟化技术分享园地 2928

Flex 4 SDK 新特性教程系列 – 新增MXML标签

本章是Flex 4 SDK 新特性教程系列的第4章。本章介绍了MXML 2009新增的标签,包括:DeclarationsVectorLibraryDefinitionPrivateReparent Declarations标签是Flex 4中最常用的新增标签。在Flex 3中,对于一个MXML组件的直接子元素,可以有以下几种情况:1. 属性标签,例如:

1708

Nmap源码分析(端口扫描)

端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放、关闭、过滤等),也为Nmap的服务与版本扫描、OS扫描、脚本扫描提供基本的指引信息。所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮助。 1简单回顾   首先简要回顾一下端口扫描的原理以及命令行选项。 1.1扫描原理   Nmap提供的10多种类型的端口扫描方法,如TCP SYN/ACK/FIN/Xmas/NULL/ Windows/Connect,FTP Bounce, Idle scan, UDP port u...

墨痕诉清风的博客 1598

Flex 4 SDK 新特性教程系列 – 改进的视图状态 (2)

本章是Flex 4 SDK 新特性教程系列的第6章。在上一章中,我们介绍了Flex 4全新的视图状态(View State)语法,本章我们将介绍Flex 4中其他与视图状态相关的新特性和变化,包括:控制组件的创建和销毁状态组Base State标签 控制组件的创建和销毁在上一章登录/注册对话框的例子中,当我们将视图状态切换到register时,会需要创建一个额外

1437

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Flex 4 SDK 新特性教程系列 – 改进的视图状态 (1)

本章是Flex 4 SDK 新特性教程系列的第5章。本章将介绍Flex 4全新的视图状态语法。 Flex 3的视图状态(View States)在此之前有多少人使用过视图状态?至少我没用过。:P下面是一个典型的例子:> name="State1"> target="{btn}" name="color" value="0xAAAAAA"/

872

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Flex3+flex SDK 4 与 Eclipse3.4 集成安装

1、下载Flex3.0 Builder for eclipse插件 (SN:1377-4168-2018-0771-2432-1495 网上转载的)。 http://trials.adobe.com/Applications/Flex/FlexBuilder/3/FB3_WWEJ_Plugin.exe 这个下载地址好像是FB3.0的,要和Eclipse3.4集成最好下载FB3.2-plug-i

程序人生 三十而立 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

FLEX4 SDK 下载 (含加载项、源代码)

<br /> <br /> <br />下载介绍:<br />在ADOBE的开源平台上,我们看到了最新的Flex 4.0.0.2675  SDK的下载,下载该SDK可以直接应用在FLEX3中。<br /> <br />FLEX4 SDK 官方下载地址:<br />Adobe Flex4 SDK 下载地址:http://flexorg.wip3.adobe.com/flexsdk/4.0.0.2675/flex_sdk_4.0.0.2675.zip<br />Flex SDK 开源下载:http://flex

软件工程 plus 人工智能 3429

Flex 开发入门

     级别: 初级刘 庆 (qlcdl@cn.ibm.com), 软件工程师, IBM 软件开发中心2009 年 1 月 07 日本文介绍 Flex 开发的基础知识:包括如何搭建开发环

taoff的专栏 3969

MXML2009

GlossaryNamespace In this document, references to namespaces are concerned with XML namespaces used in MXML documents (ActionScript also has

sysu_2010的专栏 1992

关于Flex4不生成mxml对应的html文件的解决方法-------无法打开"D:/MyEclipse 8.5/项目名称/WebRoot/WEB-INF/flex/local/zh_CN"

相关配置:1)MyEclipse 8.x Stable (8.0 GA)2)Tomcat 6 3)JDK 1.64)Flash Builder 45)LCDS         相信有很多人遇到过我类似的问题,就是新建一个Flex4项目后不生成mxml所对应的html文件,如下图:一、好了,废话不多说。我们先来新建一个项目。下面注意几点:1、  应用程序类型à选择“Web(在Adobe Flash Player 中运行)(W)”2、  Flex SDK版本就选择默认的3、  服务器技术a)应用程序服务器类型à

john2522的专栏 6521

Flex SDK 安装和使用

安装SDK: 在 Windows 中安装 AIR SDK1 下载 AIR SDK 安装文件。2 AIR SDK 按标准归档文件进行分发。若要安装 AIR,请将 SDK 的内容提取到计算机上的一个文件夹(例如:C:\Program Files\Adobe\AIRSDK 或 C:\AIRSDK)中。3 ADL 和 ADT 工具包含在 AIR SDK 的 bin 文件夹中;请将此文件夹的路径添加到 P

chy2z的专栏 7306

Flex MXML编译成AS类

    由“Flex 基础”文中可知:每一个mxml文件首先要编译成as文件,然后再译成swf文件。app.mxml文件编译后会产生一系列中间类,其中app_generated.as文件是主文件,文件中定义了转换后app的类定义。    以下将对转换后的类进行详细阐述。    1    转换后类的名称与应用程序同名(以app为例),继承自mx.core.Application。    

我的一片天空 3679

flex中SDK选择不合适引起的问题

在flex编程中,当几个项目之间相互yinyong

whurs的专栏 1157
上一篇: MXML2009
下一篇: FusionCharts and Open Flash Chart
sysu_2010
博客等级 码龄17年 7粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值