MXML是一种陈述性的、基于XML的语言。在Flex应用程序中,你可以使用MXML语言快速地创建应用程序的结构/外观。在Flex中,你使用MXML能够创建的应用程序,也可以使用ActionScript 3来创建。然而,反向操作不能成立。
如果你能够使用ActionScript 3来创建可以使用MXML完成的应用程序,那么为什么MXML会首先出现?通常学习和理解利用XML语言描述的用户界面比利用命令式语言描述的用户界面要简单得多。这样利用XML语言编写的用户界面将会具有较少的代码。另外,为陈述性语言建立工具比为命令式语言也简单得多。下面是利用MXML实现的一个范例“Hello world!”。
1: <Label text="Hello World!" fontSize="14" color="red" x="100" y="50"/>
在这段代码中,我使用了一个名称为Label的Flex组件在屏幕上显示若干文本字符。我将文本的属性设置为我期望的文本格式。另外,我希望能够对外观及该Label在屏幕上的位置进行(少许)客户化处理。因此,我使用了属性fontSize、color、x 和 y。我相信你会同意这是非常易于理解和学习的范例。
现在,考察一下利用ActionScript 3实现的相同范例:
1: var myLabel = new Label(); 2: myLabel.text = "Hello World!"; 3: myLabel.setStyle("fontSize", "14"); 4: myLabel.setStyle("color", "red"); 5: myLabel.x = 100; 6: myLabel.y = 50; 7: addChild(myLabel);
我使用了7行代码来实现前面我仅用包含一个标记和若干属性的MXML实现的范例!现在,可以设想一下在一个真正的应用程序中,你采用大量的控件,并且在不同的容器中进行分组。那么,维护利用MXML编写的代码要比维护使用几百行ActionScript 3编写的代码更为简单。