Macromedia Flex 是一个用来创建丰富信息的互联网应用程序的服务器组件。Flex内置的界面可以由Macromeida Flash播放器显示在客户端系统上。Flex的本质是:
- 一个描述应用程序界面的XML语言 (MXML)
- 一个ECMA规范的脚本语言(ActionScript),处理用户和系统的事件,构建复杂的数据模型
- 一个类库
- 运行时的即时服务
- 一个由MXML文件生成SWF文件的编译器
MXML
MXML是一种描述Flex應用程序構造的XML1.0语言。每个MXML文件应该以一个XML声明开始:<?xml version="1.0"?>
和其他XML语言一样,MXML包含元素(标签)和属性,对大小写敏感。标签名称以大写字母开头,大小写混合,必须有对应的结束标签:
<ComboBox></ComboBox>
也可以这样结束对没有内容的标签:
<ComboBox/>
属性以小写字母开头,大小写混合。属性必须包含在引号内。
<ComboBox id="myCombo"/>
除了click或initialize之类的事件之外,所有的属性都被编译器作为文本字符串处理。如果需要绑定数据或者强迫编译器执行表达式,可以将变量的部分用花括号包起来:
<ComboBox dataProvider="{myArray}"/>
大部分的属性都可以作为子标签:
<ComboBox dataProvider="{myArray}"/>
等效于:
<ComboBox> <dataProvider>{myArray}</dataProvider> </ComboBox>
描述应用程序的MXML文件必须有一个位于其他元素之外的Application元素:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
[other elements...]
</mx:Application>
注意xmlns属性,它声明了XML的命名空间。命名空间可以让你在单个文档中使用多重XML语言而避免混淆不同语言中相同的元素名称。这里的":mx"就是一个在特定命名空间中使用的前缀。
注意:这里定义的命名空间是标准的MXML类库,请将它包含在每个MXML文件中。
可以将声明放在任何MXML标签中;声明对该标签嵌套的所有标签有效。本系列教程中都以mx作为MXML类库的前缀。
如需更多信息,请参阅 Flex语言参考
ActionScript
ActionScript是一种类似JavaScript和其他ECMA规范的面向对象的脚本语言。如果你使用过JavaScript或Java/C#等其他面向对象的语言,你可以发现它们的语法很相似。你可以在MXML文件中嵌入ActionScript代码,也可以从独立的外部文件导入代码。
完整的ActionScript参考: Action 语言参考
MXML类库
Flex既包含控制和容器等可见的组件,也包括了远程服务对象和数据模型等的不可见组件。你可以在后面的介绍中得到详细的信息。
运行时服务
Flex提供了多项运行时服务,如:历史控制和远程服务连接对象。以开发的角度看,这些服务都是对类库的调用。
编译器
Flex编译器会在收到一个浏览器访问MXML文件的请求后,自动编译生成相应的SWF文件。该SWF文件将被缓存,直到你修改了源MXML文件。