`
mylxiaoyi
  • 浏览: 325293 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
使用MXML

MXML是我们可以用来为我们的Adobe Flex程序布局用户界面。我们也可以用MXML来定义程序的不可见部分,例如到服务器端的数据源的访问以及用户界面组件与服务器端数据源的数据绑定。这个主题介绍了MXML,并且描述了MXML与程序标准的联系。

使用MXML
我们使用两种语言来编写Flex程序:MXML与ActionScript。MXML是我们可以用来布局用户界面组件的XML标识语言。我们也可以使用MXML来定义一个程序的不可见部分,例如:到服务器数据源的访问以及用户界面组件和服务器数据源的数据绑定。
与HTML类似,MXML提供了标签来定义用户界面。如果我们曾使用HTML来进行工作,MXML看起来就非常熟悉。然而,MXML比HTML更为结构化,并且他提供了一个更为丰富的标签集合。例如,MXML包含了可视组件标签,例如数据网格,树,标签浏览,菜单等,并且包括提供网络服务连接,数据绑定和动画效果等非可视组件。我们同时可以使用自定义的组件来扩展MXML,并且这些组件可以作为MXML标签来进行引用。
MXML与HTML之间最大的不同就在于MXML定义的程序将会被编译成为SWF文件,并且使用Flash播放器来运行,从而提供比基于页面的HTML程序更为丰富与动态的用户界面。
我们可以在单一的文件或是多个文件中编写MXML程序。MXML同时支持在MXML和ActionScript文件中编写的自定义组件。

编写一个简单的程序
因为MXML是普通的XML文件,所以我们在开发环境上有很广的选择。我们可以在简单的文本编辑器,XML编辑器,或者是支持文本编辑的集成开发环境(IDE)中来编写MXML代码。Adobe提供了一个专业的名为Flex Builder的IDE,我们可以用来开发我们的程序。
下面的例子显示了一个简单的“Hello World”程序,这个程序仅包含一个<mx:Application>标签与两个子标签,<mx:Panel>和<mx:Lable>。<mx:Application>标签总是一个程序的根标签。<mx:Panel>标签定义了一个可以包含标题栏,标题,状态信息,边框,内容区域作为其子节点的面板容器。<mx:Label>标签代表一个标签控件,一个用来显示文本的简单用户界面组件。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:Panel title="My Application" paddingTop="10" paddingBottom="10"
        paddingLeft="10" paddingRight="10" >
        <mx:Label text="Hello World!" fontWeight="bold" fontSize="24" />
       
    </mx:Panel>
</mx:Application>
将这段代码存为hello.mxml文件。MXML文件名必须以mxml作为扩展名。然后我们就可以编译并且运行生成的SWF文件。
下图显示了浏览器窗口运行的“Hello World”程序的运行结果:
 
关于XML编码
文档的第一行指明了一个可选的XML版本的声明。包含指明MXML是如何编码的编码信息是一个很好的习惯。许多文本编辑器可以让我们选择文件编码。在北美的操作系统中,ISO-8859-1是主流的编码格式,并且许多程序在默认情况下使用这种编码格式。我们可以使用UTF-8编码格式来保证最大的平台兼容性。UTF-8为文件中的每一个字符提供一个唯一的数目,并且他是与平台,程序和语言无关的。如果我们指定了编码格式,他必须与我们所用的文件编码相匹配。下面的例子显示了指明了UTF8编码的XML声明:
<?xml version="1.0" encoding="utf-8"?>
关于<mx:Application>标签
除了作为Flex程序的根标签,<mx:Application>标签代表了一个程序容器。一个容器就是一个包含其他组件,并且具有内建的子组件布局规则的用户界面组件。在默认情况下,一个程序容器从上到下布局其子组件。我们可以在一个程序容器中嵌入其他的容器类型,例如在上面所示的面板容器。

关于MXML标签属性
MXML标签的属性,如<mx:Label>标签的text,color,fontSize属性,可以让我们定义一个组件的初始状态。我们可以在<mx:Script>标签中使用Application来在运行时改变组件状态。
MXML标签与ActionScript类的关系
Adobe将Flex作为一个ActionScript类库来实现。这个类库包含组件(容器与控件),管理器类,数据服务类,以及其他特性的类。我们使用MXML与ActionScript语言配合类库来开发我们的程序。
MXML标签对应于ActionScript类或是类的属性。Flex分析MXML标签,并且编译成为一个包含相应的ActionScript对象的SWF文件。例如,Flex提供了ActionScript按钮类来定义Flex按钮控件。在MXML中,我们使用下面的MXML语句来创建一个按钮控件:
<mx:Button label="Submit" />
当我们使用MXML标签定义一个控件,我们创建了这个类的一个实例对象。这条MXML语句创建了一个Button对象,并且将按钮对象的label属性初始化为字符串Submit。
对应于一个ActionScript类的MXML标签与ActionScript类使用相同的命名约定。类名以一个大写字母开头,在类名中以大写字母分隔单词。每一个MXML标签都对应于ActionScript类的一个属性,适合这个对象的一种风格,或者是这个对象的一个事件监听器。
在Flex Builder中使用MXML
Flex Builder包含一个针对于Adobe Flex程序开发的代码编辑器。当我们使用MXML工作时,Flex Builder代码编辑器通过提示帮助我们完成代码完成,语法错误检查,格式化代码以增强可读性,从而帮助我们简化我们的代码编辑任务。

MXML与标准的关系
MXML使用标准,在这一部分我们描述MXML与下列标准的关系:
XML
事件模型
Web服务
Java
HTTP
图像
CSS

XML标准
我们在XML文档中编写Flex程序。XML文档使用标签来定义结构化信息以及他们之间的关系。在MXML中,<mx:Application>定义了一个程序的根标签。我们在<mx:Application>标签的子标签中定义程序的其他部分。MXML标签的例子包括容器标签,例如<mx:VBox>,他定义了用户界面的矩形区域,控件标签,如<mx:TextInput>,定义了通常的用户界面控件。

事件模型标准
Flex事件模型是文档对象模型(DOM) 3 事件的一个子集,他是W3C的一个工作草案。DOM 3定义一个事件系统,这个系统允许事件监听器的平台中立与语言中立注册,通过一个树结构来描述事件流,并且为每一个事件提供了基本的脉络信息。MXML提供了标签属性允许我们指定Application代码来处理事件。例如,在下面的例子中click事件监听器发送了一个网络服务请求:
mx:Button click="mywebservice.myOperation.send()"/>

Web服务标准
Flex提供了MXML标签来与在网络服务描述语言文档(WSDL)中定义了接口的网络服务进行交互,这个文件可以作为URL得到。WSDL是一个网络服务理解的消息描述的标准格式,对应于这些消息的响应的格式,网络服务支持的协议,以及消息发送到哪里。
Flex程序支持网络服务请求,结果作为简单对象访问协议(SOAP)消息的格式,并且使用HTTP进行传输。SOAP提供了我们可以用来在网络服务客户端(例如,Flex程序)之间转换结构化与类型信息的基于XML格式的定义。

Java标准
Flex提供了MXML标签用来与服务器端Java对象进行交互,包括普通的老Java对象,JavaBean,以及EJB。

HTTP标准
Flex提供了MXML标签用来发送标准的HTTP GET或是POST请求,并且使用HTTP响应返回的数据进行工作。

图像标准
Flex提供了MXML标签用来在程序中使用JPEG,GIF,PNG格式的图像。Flex同时提供了标签用来在程序中导入SWF文件与SVG文件。

CSS标准
MXML风格是由W3C的CSS标准来定义和使用的。CSS提供了一种机制可以用来定义文本格式以及我们希望在Flex组件上实现的可视效果。
分享到:
评论

相关推荐

    mxml 2.6 源程序及 linux for mipsel 编译好的静态库

    在使用mxml-2.6这个压缩包时,开发人员通常需要进行以下步骤: 1. 解压下载的mxml-2.6压缩文件。 2. 阅读文档,了解mxml的API和使用方法。 3. 在MIPSel Linux环境下,将编译好的静态库链接到自己的应用程序中,以便...

    mxml-2.12.tar.gz

    文档可能包括README文件,介绍了如何安装和使用mxml,以及API参考,详细解释了每一个函数的作用和用法。 mxml库的一个重要特性是其小巧的体积和高效的性能。由于它不依赖外部库,因此非常适合在资源受限的环境中...

    mxml-2.9.tar.gz

    例如,`mxml.h`头文件定义了所有公开的函数和数据类型,开发者可以直接在自己的项目中包含这个文件来使用mxml库。 mxml库的解析功能是其核心部分。它采用自底向上的事件驱动解析方式,逐个读取XML文档的字符,解析...

    mxml-3.2_cXX9668_xml_

    - **文档**:可能有库的使用指南或者API参考,帮助开发者理解和使用mxml库。 - **配置和构建脚本**:如Makefile或CMakeLists.txt,用于构建库和示例程序。 使用这个库进行XML操作时,开发者通常需要按照以下步骤...

    mxml-2.2.1.tar.gz_mxml

    `mxml-2.2.1.tar.gz`是一个包含该库源代码的压缩包,供开发者下载、编译和在自己的项目中使用。 ### 一、mxml概述 `mxml`是由Michael J. Hope开发的一个小型XML解析库,它以C语言编写,具有轻量级、易于集成和高度...

    mxml-2.5.zip_mxml

    同时,示例程序通常会展示如何在实际项目中使用MXML进行XML操作。 总的来说,MXML是一个实用的XML处理工具,对于那些希望在C或C++项目中处理XML而不想引入大型XML解析库的开发者来说,是一个理想的选择。它的高效、...

    mxml-release-2.10.tar.gz

    2. **示例**:示例程序展示如何使用mxml库,帮助开发者了解库的用法。 3. **文档**:用户手册或API参考,解释库的各个功能和使用方法。 4. **测试**:单元测试代码,确保库的功能正常工作。 5. **构建脚本**:如...

    as3 flex mxml调用.as文件例子

    在本文中,我们将深入探讨如何在ActionScript 3 (AS3) 和 Flex 框架中使用MXML来调用`.as`文件中的类。Flex是Adobe开发的一个开源框架,用于构建富互联网应用程序(RIA),它结合了MXML和AS3,提供了声明式和编程式...

    mxml-release-2.7.tar.gz

    在本文中,我们将深入探讨mxml库的特性、使用方法以及如何将其整合到你的项目中。 一、mxml库概述 mxml库由Michael J. Meeks开发,它提供了一组简洁的API,使得开发者能够轻松地读取、创建和修改XML文档。尽管功能...

    flex入门教程,主要介绍了mxml和ActionScript的简单应用

    1. 设计:使用MXML定义UI布局和组件。 2. 编程:通过ActionScript实现业务逻辑和组件交互。 3. 编译:使用Flex SDK将源代码编译为SWF文件,这是Flex应用程序的最终运行形式。 4. 部署:将SWF文件嵌入到HTML页面中,...

    mxml-2.0.tar.gz_XML c语言_mxml_unix XML_xml_xml XML

    例如,在配置文件解析中,开发者可以使用mxml解析XML格式的配置文件,然后通过API提取所需的数据;在网络通信中,mxml可以帮助编码和解码XML消息,实现跨平台的数据交换。 然而,尽管mxml库小巧且高效,但它并不...

    使用容器和MXML样式

    ### 使用容器和MXML样式的知识点 #### 一、引言 在Flex开发中,容器和MXML样式是非常重要的组成部分,它们能够帮助开发者更高效地管理和美化用户界面。本篇文章将详细解读“使用容器和MXML样式”的核心知识点,包括...

    mxml-2.9.rar_mxml_mxml-2.9 编译_rhythmeg1_xml

    使用mxmlc命令行工具或者Flex Builder IDE,开发者可以将MXML文件编译成SWF(Shockwave Flash)文件,这个文件可以在Web浏览器中运行,提供丰富的用户体验。 学习和掌握MXML-2.9的关键在于理解其组件模型、事件处理...

    mxml 提炼公共接口

    使用mxml 库指定一个标准的接口,使用putInt、getInt、putString、getString、putStringArray、getStringArray等。mxml的详解可以参考https://blog.csdn.net/shift_wwx/article/details/99677421

    Flex中利用HTTPService MXML标签(tag)将XML转化为对象(objects)

    本教程将详细解释如何使用 MXML 标签来配置 HTTPService,并将接收到的 XML 数据转换为 ActionScript 对象,以便于我们更容易地访问和操作数据。 首先,我们需要了解 HTTPService 的基本用法。HTTPService 是基于 ...

    mxml2.0 源码

    7. **Flex框架服务**:MXML 2.0源码还可能包含对Flex框架提供的服务的使用,如数据服务(用于与服务器通信)、状态管理(用于管理应用程序的不同视图状态)和动画效果等。 8. **命名空间**:在MXML中,通过不同的...

    feathersui-starling-sdk:使用MXML构建Feathers UI(Starling)应用程序的SDK

    Feathers SDK 4.1.1 提供了自定义的ActionScript和MXML编译器,这些编译器专门为使用和组件构建的应用程序而设计。 通过简化受支持的IDE中的项目设置并提供更适当的默认值(例如使用“直接”渲染模式),此SDK可以...

    Flex入门教程[汇编].pdf

    本教程旨在帮助初学者快速入门Flex开发,涵盖了Flex基础知识、安装和配置Flex开发环境、使用MXML语言设计用户界面、编写ActionScript代码、使用Flex组件库、实现数据绑定和验证、使用Flex Builder开发工具等内容。...

    MXML语法关于flexview

    在FlexView中,MXML通常结合ActionScript一起使用,提供了强大的功能来创建丰富的互联网应用程序(RIA)。 ### MXML命名规范 1. **大小写敏感**:MXML区分大小写,包括文件名、类名以及属性名。 2. **文件扩展名**...

    FLEX从入门到精通.pdf

     7.2.4 使用MXML和ActiOnScript  7.3 本章小结   第8章 使用FlexBu1ider3进行开发  8.1 项目管理  8.1.1 项目属性  8.1.2 导出项目  8.1.3 导入项目  8.1.4 导航项目  8.2 创建应用程序  8.2.1...

Global site tag (gtag.js) - Google Analytics