程式設計的基本概念

由於 ActionScript 是一種程式語言,因此如能先瞭解一些基本電腦程式設計概念,將有助於快速熟悉 ActionScript。

電腦程式的作用

首先,我們可以先瞭解什麼是電腦程式以及其作用。電腦程式可分為兩點進行說明:

  • 程式是讓電腦執行的一系列指示或步驟。

  • 每個步驟最終都會操作某些資訊或資料。

一般來說,電腦程式就是提供給電腦的逐步指示清單,讓電腦逐一執行指示。每個個別的指示稱為「陳述式」。在 ActionScript 中,每一個陳述式在撰寫最後都會加上一個分號。

基本上,程式中的指示就是用來操作儲存在電腦記憶體中的一些資料。簡單的範例像是指示電腦將兩個數字相加,並將結果儲存在記憶體。而複雜的範例則像是螢幕上畫了一個矩形,而您想寫一個程式,將這個矩形移到螢幕上的其它位置。電腦會記住矩形的特定資訊:矩形所在的 x 和 y 座標、寬度和高度、顏色等。這些資訊都會儲存在電腦記憶體中。程式將矩形移至不同的位置時,應採取的步驟會類似「將 x 座標變更成 200、將 y 座標變更成 150」。換言之,它應該為 x 和 y 座標指定新的值。電腦在幕後會對此資料做一些處理,以便將這些數字實際轉換成顯示在電腦螢幕上的影像。不過,就基本的細節而言,我們只要了解「移動螢幕上的矩形」,只是涉及變更電腦記憶體中的資料位元就可以了。

變數與常數

程式設計主要涉及變更電腦記憶體中的資訊部分。因此,能夠在程式中呈現一小部分資訊的方式十分重要。「變數」是一種名稱,代表電腦記憶體中的值。當您撰寫陳述式來操作各個值時,會以變數的名稱代替每一個值。當電腦在程式中看到變數名稱時,就會搜尋記憶體,然後使用所找到的值。例如,假設您有兩個變數名為 value1value2,各自代表一個數字,若要將這兩個數字相加,可以將陳述式撰寫如下:

value1 + value2

實際執行步驟時,電腦會先尋找每個變數中的值,然後再將值相加起來。

在 ActionScript 3.0 中,變數實際上是由三個不同部分組成的:

  • 變數的名稱

  • 可以儲存在變數中的資料類型

  • 儲存在電腦記憶體中的實際值

您已經明白了電腦如何使用名稱做為值的預留位置。不過,資料類型也十分重要。當您在 ActionScript 建立變數後,要指定保存變數的資料類型。從現在開始,程式的指示只能在變數中儲存該種資料類型。您可以使用與資料類型相關的特性,操控這個值。在 ActionScript 中,若要建立變數 (稱為「宣告」變數),便需要使用 var 陳述式:

var value1:Number;

此範例會告訴電腦建立一個名稱為 value1 的變數,它只會保存 Number 資料。("Number" 是 ActionScript 中定義的一種特定資料類型) 。您也可以立即在變數中儲存值:

var value2:Number = 17;

Adobe Flash Professional

在 Flash Professional 中,會使用另一種方式宣告變數。當您在「舞台」上放置影片片段元件、按鈕元件或文字欄位時,會在「屬性」檢測器中指定實體名稱。Flash Professional 在幕後會建立一個變數,其名稱與實體名稱相同。您可以在 ActionScript 程式碼中使用這個名稱,用來代表「舞台」項目。舉個例子,假設您在「舞台」上有一個影片片段元件,您將它的實體名稱命名為 rocketShip。任何時候在 ActionScript 程式碼中使用變數 rocketShip,實際上您就是在操控這個影片片段。

常數和變數很類似。它是一個名稱,以指定的資料類型來代表電腦記憶體中的值。不同的是,常數在 ActionScript 應用程式的過程中,一次只能被指定一個值。一旦指定常數的值之後,該值在整個應用程式中都相同。常數的宣告語法和變數的宣告語法幾乎一樣。唯一的差異就是您使用 const 關鍵字取代 var 關鍵字:

const SALES_TAX_RATE:Number = 0.07;

定義的值會在整個專案多個位置使用時,常數相當實用,因為在正常情況下,常數不會改變。使用常數而非常值的話,可讓您的程式碼更容易讀取。例如,假設相同程式碼的兩個版本。一個版本是將價格乘以 SALES_TAX_RATE。另一個版本是將價格乘以 0.07。使用 SALES_TAX_RATE 常數的那一個版本更容易明白。此外,常數定義的值預設不會變更。如果您使用常數來代表專案中的值,只需在一個地方變更該值即可。相反的,如果使用硬式編碼的數值,就必須到每個地方進行變更。

資料類型

在 ActionScript 中,您可以使用許多資料類型做為所建立變數的資料類型。部分資料類型可視為「簡單」或「基本」資料類型:

  • String:文字值,例如某個名稱或書籍章節文字

  • Numeric:ActionScript 3.0 針對數值資料提供三種特定資料類型 -

    • Number:任何數值,包括有小數或沒有小數的值

    • int:整數 (即沒有小數的數字)

    • uint:「無正負號」的整數,表示這個整數不能是負數

  • Boolean:true 或 false 值,例如切換是否開啟,或兩個值是否相等

簡單資料類型代表單一資訊,例如一個數字或一段文字。不過,ActionScript 大部分定義的資料類型都是複雜資料類型。它們代表單一容器中的一組值。例如,資料類型為 Date 的變數代表單一值 (即某個時間)。但是,日期值是由幾個值所組成,包括日、月、年、時、分、秒等,這些都是個別的數字。人們一般會將日期視為單一值,而且您可以建立 Date 變數,就可以將日期當做是單一值。不過,電腦內部會將它視為一群值,整體定義為單一的日期。

大多數內建資料類型和程式設計人員定義的資料類型,都屬於複雜資料類型。一些您或許認得的複雜資料類型包括:

  • MovieClip:影片片段元件

  • TextField:動態或輸入文字欄位

  • SimpleButton:按鈕元件

  • Date:單一時間的資訊 (日期和時間)

資料類型的兩個常見同義詞是類別和物件。類別就是資料類型的定義。它像是一個範本,用於這種資料類型的所有物件,好比說「Example 資料類型的所有變數都具備以下特性:A、B 和 C」;而「物件」則是類別的實際實體。例如,資料類型為 MovieClip 的變數可描述為 MovieClip 物件。因此,下面的說法基本上都是相同的:

  • 變數 myVariable 的資料類型為 Number。

  • 變數 myVariable 是 Number 實體。

  • 變數 myVariable 是 Number 物件。

  • 變數 myVariable 是 Number 類別的實體。