博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flex---->MXML语法
阅读量:6371 次
发布时间:2019-06-23

本文共 6028 字,大约阅读时间需要 20 分钟。

1. MXML语法

MXML语言是专门用于Flex程序中,描述界面表现的一中XML标记语言。我们可以用它来管理程序的整体布局,控制组件的样式和外观,也可以构建非可视化的对象,比如XML数据、与服务器端通信的WebService、组件的数据源等。

1.1 命名规范

MXML区分大小写,且文件名和变量标示名都区分大小写。

MXML文件以mxml作为扩展名,文件名要遵循AS中变量的命名规则。

所有的MXML都被视为用户自定义的组件,相当于对象,可以使用代码动态创建。

变量名必须以字母或下划线开始,且只能包含字母、数字和下划线。

不能命名为applicationapplication 是主程序文件的默认标记,不可再使用。

程序不能使用“mx”做为目录名,mx 是官方组件库的命名空间。

2.2 MXML 文件结构

MXML为标准的XML文件。我们以一个MXML文件来说明:

Xml代码

第一行声明XML文件采用的语法版本version 和编码格式encoding(默认为utf-8)。

mx:Application:在每个Flex项目中,可能有多个MXML文件,mx:Application为根节点标示程序入口的运行文件。

xmlns:mx= :将mx定义为XML的命名空间,对应路径为Flex的配置文件中将这个路径定义为一个全局资源标识符,并对应了一个列出mx命名空间下的所有标签的文件。flex-config.xml中配置了命名空间。该文件可在Flex Builder的安装路径下的Flex SDK \frameworks目录中找到。并找到如下代码。

Xml代码

http://www.adobe.com/2006/mxml
mxml-manifest.xml

从上面的配置发现, 这个URImxml-manifest.xml文件对应,找到该文件,里面列出了所有标签和与标签相关联的类文件路径。

中的id代表标签名,class表示类文件路径。

xmlns:comp="comps.*" 定义一个命名空间,因为使用了通配符“*”,comps目录下的所有MXMLAS类(不包括子目录的文件)都被包括在comp命名空间下。如comps下有Login.mxml,则在程序中可这样调用:

<comp:Login></comp:Login>

Application 还有一个属性layout ,定义了该节点下元素的布局方式,也就是程序的总体布局方式。absolute 表示绝对定位,所有子元素将按照各自的xy坐标来定位。

2. 使用组件

<mx:Button></mx:Button> 定义一个按钮组件

如果组件中未包含其他子元素可这样写:<mx:Button />

 

组件分类:

布局类:包括所有的容器组件,如:HBoxPanel等,SpacerHRuleVRule不是容器,但是主要用于布局。

导航类:菜单条、按钮条等各种导航功能的组件。

交互类:内容展示、数据交互相关组件,如:按钮、下拉框、图片、视频等。

IDE中的组件面板列出了所有的可视化组件,可直接拖入编辑区使用。

通过IDE的代码提示输入<mx:跟进可以列出mx下的所有对象。

3. 自定义MXML组件

基于组件开发模式是Flex的一个特色,程序中所有的MXMLAS类文件,都被当作用户自定义的组件。

我们来建一个MXML组件:

New->MXML Component

在弹出的窗口输入组件的文件名Filename,并选择扩展哪一种组件Based on,我们这里选择Image对象。然后Finish

然后点击Image组件,在属性面板的Source属性设置图片的路径。

Xml代码

然后在程序中就可以使用该自定义的组件,将其从用户面板拖入到编辑区,图片显示正常。

Xml代码

<ns1:imageEnboga x="205"y="90"/>就是我们拖入的自定义组件,程序自动添加了ns1命名空间。我们改变自定义组件的位置放到view文件夹,代码变成:<view:imageEnboga x="205"y="90"/>

4. 编写ActionScript

MXML文件经过编译最后也是被转换成AS来执行,在一个Flex程序中,主程序会被转换为Application对象的子类,自定义对象会被转换为父级对象的子类。

4.1MXML中使用AS

在组件的事件属性中使用AS来处理事件

比如Xml代码

<mx:Button  x="41"  y="90" label="Hello Flex"  click="tip_txt.text='欢迎来到RIA的世界--开始Flex之旅'"/>

上面代码中的click="tip_txt.text='欢迎来到RIA的世界--开始Flex之旅'"会被编译为

private function_btn_click(event:MouseEvent):void{tip_txt.text='欢迎来到RIA的世界--开始Flex之旅';}

这个函数被注册为按钮的点击事件侦听器,一旦点击事件触发,函数就会被调用。

MXML中插入AS

Xml代码

此标签可以放在根节点内的任何位置,同时必须用CDATA将代码包起来。CDATA不能嵌套使用。

AS中的注释是 //单行注释

MXML中的注释和XML一样<!-- 注释-->

4.2 创建外部AS文件

New->ActionScript file 可以创建一个外部AS文件

Xml代码

<mx:Script source="my.as"/>在程序中可以使用上面的代码导入。

4.3 创建AS类文件

New->ActionScript Class 可以创建一个AS类文件

Xml代码

package{public class Test{function Test(){trace("Test");}}}

上面代码创建了一个Test类,在构造函数Test()中在控制台打印Test

在主程序中可调用:

Xml代码

applicationCompleteApplication对象的一个事件,程序初始化后触发此事件。

var myTest:Test = new Test()这个代码的作用是创建一个Test对象,创建对象用new关键字。

5 编辑非可视化对象

创建数据

Xml代码

 
   
Flexdeveloper
   
Flashdeveloper
   
Webdeveloper
   
Mobiledeveloper
 

定义1个包含4个字符串元素的数组,相当于下面的代码

Xml代码

定义好数组之后,可以作为List或者其他组件的数据源dataProvider

<mx:List x="20" y="20" dataProvider="{array_data}"width="180"></mx:List>

Xml代码

 
   
    
     
     
     
   
   
    
    
   
         
  

创建一段XML做为Tree树型组件的数据源。

<mx:Tree x="20" y="190" labelField="@label" dataProvider="{myData}" width="180"> </mx:Tree>

MXML语句创建类实例

<view:Test></view:Test>

这样就创建了之前定义的Test类的实例。相当于用AS new一个出来

转载地址:http://qruqa.baihongyu.com/

你可能感兴趣的文章
《VMware Virtual SAN权威指南(原书第2版)》一3.5 可能发生的网络配置问题
查看>>
SK电讯发布Q2财报 净利润同比下降26.9%
查看>>
零售品牌如何驾驭大数据主导商业决策?
查看>>
经济模式UPS在数据中心的应用(上)
查看>>
Intel首款32核Xeon E5 v5跑分曝光:史上最强
查看>>
中国基于国产龙芯处理器的大数据一体机
查看>>
物联网影响商业发展三要素
查看>>
China Unicom and Chunghwa Telecom work together&nb
查看>>
Java图片上查找图片算法
查看>>
Python fabric实现远程操作和部署
查看>>
详解Java中staitc关键字
查看>>
前中情局局长:FBI目的是从根本上改善iPhone
查看>>
大隐隐于市,你身边的那些安全隐患你都知道么?
查看>>
物联网市场迅猛发展 “中国芯”如何把握机会?
查看>>
aws 上使用elb 的多域名问题
查看>>
环球花木网的目标就是致力于打造成为“园林相关行业的专业性门户网站
查看>>
《编写高质量代码:改善c程序代码的125个建议》—— 建议14-1:尽量避免对未知的有符号数执行位操作...
查看>>
《C语言编程魔法书:基于C11标准》——2.2 整数在计算机中的表示
查看>>
全球程序员编程水平排行榜TOP50,中国排名第一
查看>>
HDFS 进化,Hadoop 即将拥抱对象存储?
查看>>