Flex - 應用程式



在使用 Flash Builder 建立實際的 “HelloWorld” 應用程式之前,讓我們先了解 Flex 應用程式的實際組成部分。

Flex 應用程式由以下四個重要部分組成,其中最後一個部分是可選的,但前三個部分是必須的。

  • Flex 框架庫
  • 客戶端程式碼
  • 公共資源 (HTML/JS/CSS)
  • 伺服器端程式碼

典型 Flex 應用程式(如 HelloWord)的不同部分的示例位置如下所示:

名稱 位置
專案根目錄 HelloWorld/
Flex 框架庫 構建路徑
公共資源 html-template
客戶端程式碼 table table-bordered/com/tutorialspoint/client
伺服器端程式碼 table table-bordered/com/tutorialspoint/server

應用程式構建過程

首先,Flex 應用程式需要 Flex 框架庫。稍後,Flash Builder 會自動將庫新增到構建路徑。

當我們使用 Flash Builder 構建程式碼時,Flash Builder 將執行以下任務:

  • 將原始碼編譯成 HelloWorld.swf 檔案。

  • 從儲存在 html-template 資料夾中的 index.template.html 檔案編譯 HelloWorld.html(swf 檔案的包裝檔案)。

  • 將 HelloWorld.swf 和 HelloWorld.html 檔案複製到目標資料夾 bin-debug 中。

  • 將 swfobject.js(一個負責在 HelloWorld.html 中動態載入 swf 檔案的 JavaScript 程式碼)複製到目標資料夾 bin-debug 中。

  • 將框架庫以名為 frameworks_xxx.swf 的 swf 檔案的形式複製到目標資料夾 bin-debug 中。

  • 將其他 Flex 模組(.swf 檔案,例如 sparkskins_xxx.swf、textLayout_xxx.swf)複製到目標資料夾中。

應用程式啟動過程

  • 在任何 Web 瀏覽器中開啟位於 \HelloWorld\bin-debug 資料夾中的 HelloWorld.html 檔案。

  • HelloWorld.swf 將自動載入,應用程式將開始執行。

Flex 框架庫

以下是關於一些重要框架庫的簡要說明。請注意,Flex 庫使用 .swc 表示法表示。

序號 節點和描述
1

playerglobal.swc

此庫特定於安裝在您計算機上的 Flash Player,幷包含 Flash Player 支援的本機方法。

2

textlayout.swc

此庫支援與文字佈局相關的功能。

3

framework.swc

這是 Flex 框架庫,包含 Flex 的核心功能。

4

mx.swc

此庫儲存 mx UI 控制元件的定義。

5

charts.swc

此庫支援圖表控制元件。

6

spark.swc

此庫儲存 Spark UI 控制元件的定義。

7

sparkskins.swc

此庫支援 Spark UI 控制元件的皮膚化。

客戶端程式碼

Flex 應用程式程式碼可以使用 MXMLActionScript 編寫。

序號 型別和描述
1

MXML

MXML 是一種 XML 標記語言,我們將使用它來佈局使用者介面元件。MXML 在構建過程中被編譯成 ActionScript。

2

ActionScript

ActionScript 是一種面向物件的程式設計語言,基於 ECMAScript (ECMA-262) 第 4 版草案語言規範。

在 Flex 中,我們可以混合使用 ActionScript 和 MXML 來執行以下操作:

  • 使用 MXML 標記佈局使用者介面元件。

  • 使用 MXML 宣告性地定義應用程式的非可視方面,例如訪問伺服器上的資料來源。

  • 使用 MXML 在使用者介面元件和伺服器上的資料來源之間建立資料繫結。

  • 使用 ActionScript 在 MXML 事件屬性內定義事件偵聽器。

  • 使用標籤新增指令碼塊。

  • 包含外部 ActionScript 檔案。

  • 匯入 ActionScript 類。

  • 建立 ActionScript 元件。

公共資源

這些是 Flex 應用程式引用的幫助檔案,例如位於 html-template 資料夾下的主機 HTML 頁面、CSS 或影像。它包含以下檔案:

序號 檔名和描述
1

index.template.html

主機 HTML 頁面,帶有佔位符。Flash Builder 使用此模板構建包含 HelloWorld.swf 檔案的實際頁面 HelloWorld.html。

2

playerProductInstall.swf

這是一個 Flash 實用程式,用於以快速模式安裝 Flash Player。

3

swfobject.js

這是負責檢查已安裝的 Flash Player 版本並在 HelloWorld.html 頁面中載入 HelloWorld.swf 的 JavaScript。

4

html-template/history

此資料夾包含應用程式歷史記錄管理的資源。

HelloWorld.mxml

這是實現應用程式業務邏輯的實際 MXML/AS(ActionScript)程式碼,Flex 編譯器將其轉換為 SWF 檔案,該檔案將在瀏覽器中由 Flash Player 執行。

HelloWorld Entry 類的示例如下:

<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009" 
   xmlns:s = "library://ns.adobe.com/flex/spark" 
   xmlns:mx = "library://ns.adobe.com/flex/mx"
   width = "100%" height = "100%"
   minWidth = "500" minHeight = "500" 
   initialize = "application_initializeHandler(event)">

   <fx:Script>
      <![CDATA[
         import mx.controls.Alert;
         import mx.events.FlexEvent;
         protected function btnClickMe_clickHandler(event:MouseEvent):void {
            Alert.show("Hello World!");				
         }

         protected function application_initializeHandler(event:FlexEvent):void {
            lblHeader.text = "My Hello World Application";				
         }
      ]]>
   </fx:Script>
   
   <s:VGroup horizontalAlign = "center" width = "100%" height = "100%" 
      paddingTop = "100" gap = "50">
      <s:Label id = "lblHeader" fontSize = "40" color = "0x777777" />
      <s:Button label = "Click Me!" id = "btnClickMe" 
         click = "btnClickMe_clickHandler(event)" />
   </s:VGroup>	
</s:Application>

下表描述了上述程式碼指令碼中使用的所有標籤。

序號 節點和描述
1

Application

定義應用程式容器,它始終是 Flex 應用程式的根標籤。

2

Script

包含 ActionScript 語言中的業務邏輯。

3

VGroup

定義一個垂直分組容器,可以以垂直方式包含 Flex UI 控制元件。

4

Label

表示標籤控制元件,一個非常簡單的使用者介面元件,用於顯示文字。

5

Button

表示按鈕控制元件,可以單擊它來執行某些操作。

伺服器端程式碼

這是應用程式的伺服器端部分,它是完全可選的。如果您不在應用程式中執行任何後端處理,則不需要此部分;但如果後端需要一些處理,並且您的客戶端應用程式與伺服器互動,則您必須開發這些元件。

在下一章中,我們將使用所有上述概念使用 Flash Builder 建立 HelloWorld 應用程式。

廣告