MXML是什么 Flex应用的UI描述语言

1次阅读

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

MXML是什么 Flex应用的UI描述语言

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,而是与其分工明确:

  • 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:
  • 命名空间声明位置决定作用域——在某个标签上声明,则对该标签及其子节点生效
text=ZqhQzanResources