MXML,Macromedia Flex 标记语言简介
Christophe Coenraets, Macromedia Flex 专员
[原作]http://www.macromedia.com/devnet/flex/articles/paradigm.html
[翻译]samhoo(samhoophone@yahoo.com)
[注]转载请保持全文完整
Macromedia Flex(开发代号为 Royale)是一个展现服务器,开发者可以用它来开发新一代的“复杂Internet应用”(RIAs - Rich Internet Applications)。复杂Internet应用融合了桌面应用的可用性和web应用的易于管理的优点。
Flex是一个在J2EE应用服务器或servlet容器安装的展现服务器。它拥有丰富的用户界面组件、用于排布这些组件的基于XML的标记语言,以及可以处理用户交互的面向对象编程语言。这些技术的给我们带来的是:使用Flash播放器渲染复杂Internet应用,使用工业标准和开发者熟悉的方式进行开发。
本文将专注于Flex语言的关键部分。
为了运行本文中提到的代码,你可能需要加入Flex的Beta测试。Flex运行于象Macromedia JRun, IBM Websphere, BEA WebLogic, or Apache Tomcat 这样的J2EE应用服务器之上。Flex未来将支持Microsoft .NET服务器。
Flex 语言简介
由于标记语言和面向对象程序设计语言广泛应用,因此,基于这两项技术的Flex语言也将从中获益。
标记语言是成功的,排布用户界面也相对容易。MXML,由Flex引入的、基于XML的标记语言,将延续其成功。和HTML很象,你可以用MXML来排布应用的用户界面。同为基于XML的标记语言,MXML比HTML有更强的结构,更少的语法歧义。比起HTML,MXML还引入了更丰富的标签集。如:DataGrid,Tree,TabNavigator,Accordion和Menu,这些都是标准标签集中的一部分。你还可以扩展MXML标签,创建自己的组件。此外,二者最大的区别是,MXML定义的用户界面是用Flash播放器运行的,相对传统的基于HTML、页面为中心的web应用而言,这将更具吸引力。
除了排布可视组件,还可以用MXML来定义应用中其他重要方面,如,可以把应用定义为一个web服务的客户,或是在应用中开发动画,用于提示用户进度。
但是,标记语言提供的编程逻辑仍难以满足用户交互的需求。在Flex中,可以用ActionScript编程语言来编写事件监听器来满足此种需求。ActionScript是一种基于ECMA-262标准的、强类型的面向对象语言,和其他编程语言——java和C#很相似,因此也很易于上手。
总而言之,当编写一个Flex的应用时,需要用MXML来设置用户界面,并用ActionScript来编写响应用户交互的逻辑。
作为一个开发者,你可以根据自己的喜好,用自己所熟悉的IDE(比如Eclipes或Intellij)手工编写MXML,也可以使用Flex支持的“所见即所得”开发环境(目前开发代号为Brady)。即使你选择手工编写MXML,仍可使用Flex提供的XML schema,在IDE中为你提供代码提示(code hinting)和代码自动填充(code completion)的功能.
下面例子是一个名为HelloWord.mxml的简单Flex应用的源代码。该应用程序有两个TextInput组件,当点击Copy时,source TextInput的内容就会显示在destination TextInput域中。以下例子显示如何用MXML和ActionScript来创建应用:用MXML定义用户界面,再用ActionScript为Button组件的事件监听器编写拷贝逻辑。
<?xml version="1.0" encoding="iso-8859-1"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:TextInput id="source" width="100"/>
<mx:Button label="Copy" click="destination.text=source.text"/>
<mx:TextInput id="destination" width="100"/>
</mx:Application>
图1.在HelloWorld程序中将source TextInput的文本拷贝到destination TextInput。
<待续>