mxml 是 adobe flex 中声明式描述 ui 结构的 xml 标记语言,用于定义组件布局、数据绑定与事件监听,经编译转为 actionscript 类生成 swf;需以 xml 声明开头,区分大小写、闭合标签、引号属性值,配合 as 处理逻辑,通过命名空间(如 mx:)映射类库。

MXML 是 Adobe Flex 框架中用于描述用户界面(UI)结构和行为的 XML 标记语言。它不是运行时代码,而是一种声明式描述方式——类似 HTML 布局网页,但目标是生成可在 Flash Player 或 Adobe AIR 中运行的 SWF 应用程序。
MXML 的核心定位
MXML 本质是 UI 的“蓝图”:定义组件布局、容器嵌套、数据绑定关系、事件监听器占位,以及部分非可视化逻辑(如 HTTPService、RemoteObject 配置)。它不直接执行业务逻辑,而是通过编译过程转化为 ActionScript 类,最终参与 SWF 构建。
- 每个 MXML 文件必须以
<?xml version="1.0"?>开头,并包含一个根容器(通常是<application></application>或<application></application>) - 标签名区分大小写,
<button></button>和<button></button>是不同元素 - 所有标签需闭合:
<label text="Hello"></label>或<label></label> - 属性值必须加引号,如
id="myBtn";动态值用花括号包裹:dataProvider="{myList}"
MXML 与 ActionScript 的协作关系
MXML 不替代 ActionScript,而是与其分工明确:
本文档主要讲述的是Android的资源与国际化设置;资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML,PNG以及JPEG文件XML文件根据描述的不同有不同格式。这份文档描述可以支持什么样的文件,语法,以及各种格式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- MXML 负责“视图层”组织:组件摆放、样式初始值、绑定表达式、服务配置
- ActionScript 处理“逻辑层”:事件响应、数据处理、状态管理、复杂算法
- MXML 中可内嵌
<script></script>块写 AS 代码,也可引用外部 .as 文件 - 每个 MXML 标签(如
<datagrid></datagrid>)都对应一个具体的 ActionScript 类,编译时自动映射
MXML 文件的基本组成
一个典型 Flex 应用通常由三类文件协同构成:
- .mxml 文件:主界面或自定义组件,含 UI 结构与基础声明
- .as 文件:封装模型、服务调用、工具函数等纯逻辑代码
- .css 文件:集中管理皮肤、字体、颜色等视觉样式
命名需遵守 ActionScript 变量规则:不能以数字开头,只能含字母、数字、下划线;主应用文件不可命名为 application.mxml(该名称被框架保留)。
MXML 的命名空间机制
MXML 使用命名空间(namespace)避免标签冲突并精确指向类库:
-
xmlns:mx="http://www.adobe.com/2006/mxml"声明标准 Flex 组件库 -
mx:前缀表示该标签属于 mx 包,如<vbox></vbox>对应mx.containers.VBox - 可自定义命名空间引入自定义组件或 Spark 组件(
s:) - 命名空间声明位置决定作用域——在某个标签上声明,则对该标签及其子节点生效









