天天看點

Flex的MXML檔案結構

Flex的MXML檔案結構

2009年10月28日 星期三 22:51

2008-10-29 23:21

下面是一個MXML

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx=http://www.adobe.com/2006/mxml layout="absolute">

</mx:Application>

第一行聲明XML檔案采用的文法版本号和檔案采用的編碼格式。mx:Application标簽是一個特殊的标簽。在每一個MXML檔案,但作為程式入口的運作檔案隻有一個,主檔案的标示是根節點為mx:Application,一個程式中出現一個mx:Application節點。還有一個屬性xmlns:mx=http://www.adobe.com/2006/mxml,表示将mx定義為XML的命名空間。xmlns标簽專門用來定義XML的命名空間,XML命名空間可以用來定義一套獨立的XML标簽,并且為這些标簽指定特殊的解析方式。比如XML檔案中預設的标簽格式為:<Button>node</Button>,這裡的Button節點作為一個普通的文本節點,沒有特殊的意義。定義命名空間後,在節點上加上空間字首:<mx:Button></mx:Button>這時候就代表mx空間下的Button對象。

Mx命名空間對應的路徑是”http:// www.adobe.com/2006/mxml”,Flex的配置檔案中将這個路徑定義為一個全局資源辨別符,并對應了一個XML檔案。在這個檔案中,列出了mx命名空間下的所有标簽。在Flex SDK3.0.1 目錄下的frameworks目錄中找到flex-config.xml檔案,打開并找到如下内容:

<namespaces>

<namespace>

<uri>http://www.adobe.com/2006/mxml</uri>

<manifest>mxml-manifest.xml</manifest>

</namespace>

</namespaces>

從上面可以發現,” http://www.adobe.com/2006/mxml”這個URI和mxml-manifest.xml檔案對應,打開該檔案,該檔案列出了MXML中的所有标簽與标簽關聯的類檔案路徑。

<?xml version="1.0"?>

<componentPackage>

<component id="FileSystemComboBox" class="mx.controls.FileSystemComboBox"/>

<component id="FileSystemDataGrid" class="mx.controls.FileSystemDataGrid"/>

。。。。。。。

<component id="WebService" class="mx.rpc.soap.mxml.WebService"/>

<component id="WebServiceOperation" class="mx.rpc.soap.mxml.Operation"/>

</componentPackage>

在開發中,當程式有很多MXML檔案和AS檔案時,為了友善調用,我們可以将功能相似的檔案放在一個檔案夾中,定義一個命名空間在定義命名空間時,為了友善,很一般直接指定命名空間包括的标簽路徑。比如:

xmlns:myComp=”components.*”

上面使用了通配符”*”, components目錄下所有的MXML檔案個ActionScript類檔案都被包括在myComp命名空間下。例如components中有一個Loginpanel.mxml,則程式中調用這個檔案時,代碼如下

<myComp: Loginpanel></myComp: Loginpanel>

myComp下的标簽被自動指向components檔案,當标簽數量較多而且分布在不同檔案夾時,可以效仿Flex配置檔案的做法,使用XML檔案來描述。