flex基礎(1)

wangjun_pfc發表於2007-10-04
Flex 簡介

Flex 是 Macromedia釋出的presentation server(展現服務),它是java web container或者.net server的一個應用,根據.mxml檔案(純粹的xml描述檔案和actions cript)產生相應得.swf檔案,傳送到客戶端,由客戶端的flash player或者shockwave player解釋執行,給使用者以豐富的客戶體驗

Flex的本質是:

 

  • 一個描述應用程式介面的XML語言 (MXML)
  • 一個ECMA規範的指令碼語言(ActionScript),處理使用者和系統的事件,構建複雜的資料模型
  • 一個類庫
  • 執行時的即時服務
  • 一個由MXML檔案生成SWF檔案的編譯器

 

MXML

MXML是一種描述Flex應用程式構造的XML1.0語言。

每個MXML檔案應該以一個XML宣告開始:<?xml version="1.0"?>

和其他XML語言一樣,MXML包含元素(標籤)和屬性,對大小寫敏感。標籤名稱以大寫字母開頭,大小寫混合,必須有對應的結束標籤:
<ComboBox></ComboBox>

也可以這樣結束對沒有內容的標籤:
<ComboBox/>

屬性以小寫字母開頭,大小寫混合。屬性必須包含在引號內。
<ComboBox id="myCombo"/>

除了click或initialize之類的事件之外,所有的屬性都被編譯器作為文字字串處理。如果需要繫結資料或者強迫編譯器執行表示式,可以將變數的部分用花括號包起來:
<ComboBox dataProvider="{myArray}"/>

大部分的屬性都可以作為子標籤:
<ComboBox dataProvider="{myArray}"/>
等效於:
<ComboBox> <dataProvider>{myArray}</dataProvider> </ComboBox>

描述應用程式的MXML檔案必須有一個位於其他元素之外的Application元素:
<?xml version="1.0"?> 
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
  [other elements...] 
</mx:Application>

注意xmlns屬性,它宣告瞭XML的名稱空間。名稱空間可以讓你在單個文件中使用多重XML語言而避免混淆不同語言中相同的元素名稱。這裡的":mx"就是一個在特定名稱空間中使用的字首。

注意:這裡定義的名稱空間是標準的MXML類庫,請將它包含在每個MXML檔案中。

可以將宣告放在任何MXML標籤中;宣告對該標籤巢狀的所有標籤有效。本系列教程中都以mx作為MXML類庫的字首。

 

ActionScript

ActionScript是一種類似JavaScript和其他ECMA規範的物件導向的指令碼語言。如果你使用過JavaScript或Java/C#等其他物件導向的語言,你可以發現它們的語法很相似。你可以在MXML檔案中嵌入ActionScript程式碼,也可以從獨立的外部檔案匯入程式碼。

MXML類庫

Flex既包含控制和容器等可見的元件,也包括了遠端服務物件和資料模型等的不可見元件。

執行時服務

Flex提供了多項執行時服務,如:歷史控制和遠端服務連線物件。以開發的角度看,這些服務都是對類庫的呼叫。

編譯器

Flex編譯器會在收到一個瀏覽器訪問MXML檔案的請求後,自動編譯生成相應的SWF檔案。該SWF檔案將被快取,直到你修改了源MXML檔案。