MXML学习篇

关于 MXML

你可以使用两种语言来开发Flex 程序:MXML 和 ActionScript。MXML是一种xml标记语言,你可以用它来设计用户界面。(You also use MXML to declaratively define nonvisual aspects of an application不知道如何翻译) 你也可以使用它来定义程序的非可视方面,比如:使用服务器上的数据源或把服务器上的数据源与用户界面进行数据绑定。

就像HTML一样,MXML也提供了一些标签来定义用户界面。如果你曾经做过HTML开发你就会发现MXML与之很相似。不过,MXML要比HTML更加的结构化,而且它提供了更加丰富的标签设置。例如:MXML提供了一些可视化组件的标签,比如:dataGrid, trees, tab navigators, accordions, menus。同样也提供了一些非可视化组件的标签,比如:可提供web服务连接的标签,数据绑定以及动画效果。你也可以通过继承MXML标签来自定义组件,然后再通过MXML标签来引用组件。

MXML与HTML最大的一个区别就是基于MXML开发的程序被编译成swf格式的文件并且被 Adobe Flash Player 或者 Adobe AIR进行渲染,能提供比基于HTML开发的程序更加丰富多彩的用户界面。

你可以开发一个或多个文件的MXML程序。MXML同样也支持用MXML或ActionScript写的自定义组件。

关于<mx:Application>标签

<mx:Application>标签除了是Flex程序的根标签之外,它还代表一个Application的容器。容器是包含了其他组件的用户界面组件,并且内置了一些布局规则用来控制它的子元素的位置摆放。一个Application容器默认的是从顶部到底部垂直的布局它的子元素。你可以把其他类型的容器放入到Application容器中去,比如panel容器显示在上面按照其他的规则用来摆放用户界面组件的位置。

 

关于MXML标签属性

MXML标签属性,比如<mx:Label>标签的text, fontWeight, fontSize属性,可以让你声明化的配置组件的初始状态。你可以在<mx:Script>标签中使用ActionScript代码在运行时改变组件的状态属性。

 

把MXML文件编译成swf文件

你可以部署你的程序作为一个swf文件,或者作为swf包含在AIR程序中,或者如果你使用了Adobe LiveCycle Data Services ES,你可以部署你的程序作为一套MXML文件和AS文件。

 

如果你正在使用Flex Builder,你可以编译并运行用Flex Builder编译好的swf文件。在你的程序成功执行后,你通过把它拷贝到你到web服务器上或者程序服务器的目录上来部署你的程序。然后用户就可以用下面这种发送HTTP 请求的形式来访问swf程序。

http://hostname/path/filename.html

Flex也提供了命令行式的MXML编译器,mxmlc,它可以编译你的MXML文件,你可以使用mxmlc的命令行来编译hello.mxml,就像下面的例子显示的那样:

cd flexInstallDir/binmxmlc --show-actionscript-warnings=true --strict=true c:/appDir/hello.mxml在这个例子中,flexInstallDir是指Flex的安装目录,appDir是指包含hello.mxml的目录,hello.swf,这个作为生成后的结果文件,与hellow.mxml写在同一个目录下。

 

MXML标签与ActionScript类之间的关联

Adobe实现Flex作为ActionScript类库。类库包含组件(容器和控制),管理类,数据服务类,和表现其他特征的类。你通过使用MXML和类库的ActionScript语言来开发程序。

MXML标签相当于ActionScript类或类的属性。Flex解析MXML标签并且编译一个包含相当于ActionScript对象的swf文件。例如,Flex提供AcitonScript的Button类用来定义Flex中的Button控件。在MXML中,你可以通过使用下面的MXML声明来创建一个Button控件。

<mx:Button label="Submit"/>当你使用MXML标签来声明一个控件时,你创建了一个类的实例对象。这个MXML声明创建了一个Button对象,并且把这个Button对象的Label属性初始化成”Submit”字符串。

MXML标签相当于使用了相等命名规则的ActionScript类。类的命名以大写字母为开头,且类的命名中的单词也以大写字母为开头。每个MXML标签的属性相当于ActionScript对象的属性,对象的样式应用,或者对象的事件监听。

 

了解Flex程序的结构

你可以写单个文件或多个文件的MXML程序。你可以定义一个包含有<mx:Application>标签的主文件。在你的主文件中,你可以调用其他的文件,MXM,ActionScript,或者这两种的结合体。

一种常见的编码方式是将你的Flex程序分成多个功能性的单元或者多个模块,每个模块完成互不相干的功能。在Flex中,你可以将Flex程序分成多哥MXML文件和ActionScript文件,每个文件相当于不同的模块。把程序分成多个模块,这样的做法可以有以下的好处:

易于开发性:不同的开发者或者开发组可以彼此相互独立的开发和调试模块。

可重用性:你可以在不同的程序中重用你的模块,这样你就可以不用重复工作了。

可维护性:你可以让代码孤立起来,并且这样可以更快的找到bug,这样比你把程序写在一个文件中快多了。

 

在Flex中,模块等同与用MXML或ActionScript实现的自定义组件。这些自定义组件可以引用其他的自定义组件。在Flex中,组件的引用是没有层级嵌套的限制的。你可以在程序中根据需要来定义你的组件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值