1.1.1 ActionScript的歷史
從Flash 3開始,ActionScript 就開始出現,當時的ActionScript還非常簡陋,功能也僅僅局限于控制動畫的播放等動作。
等到Flash 4的推出,ActionScript的功能被進一步完善。基本實現了相應各種事件、控制動畫行為、和後台交換數據的功能。但是其編程風格仍停留在面向過程的階段,盡管也有對象的概念,但是非常模糊。
在Flash 5中,ActionScript 出現了翻天覆地的變化,基本語法都經過了改寫,有點和JavaScript類似,風格也從面向過程轉變到了面向對象,提供了自定義的函數以及新增了強大的數學函數、顏色、聲音以及XML等對象的支持。使得編程更加得心應手,能夠做出更多酷炫的效果,和用戶的交互也得到了進一步的提高。
Flash MX推出之後,它的ActionScript以Flash 5的ActionScript為基礎,整個語法體系以及編程風格、界面都沒有做很大的改動,只是在某些函數、對象的實現上做了擴充,新增了一些方法,提供了更為強大的對象支持。
1.1.2 Flash MX ActionScript 的特點
Flash MX ActionScript 具有以下特點︰
(1)ActionScript能夠控制Flash動畫的播放行為和對象的屬性。根據用戶的動作來做出響應,並在動畫中體現出來。根據載體的不同,Flash ActionScript可以分為兩類。一類是放在Frame幀中的ActionScript,主要是做一些計算以及控制動畫的播放行為;另一類是放在Button按鈕或Movie Clip中的ActionScript,其主要功能是響應用戶的事件,當然在響應用戶事件後也會進行一些計算或是控制動畫的播放。ActionScript更能控制動畫中的每一個對象的各種屬性的變化,例如長寬、旋轉角度、顏色、大小等。
(2)Flash MX ActionScript 是一種面向對象的編程語言,它的風格和JavaScript語言相類似。程序由多行語句構成,每行語句又都是由一些指令、變量、運算符以及結尾的分號組成。它擁有循環、判斷、對象事件等高級語言的特性。
(3)Flash MX ActionScript可以使用自定義函數。如果有一個功能要經常使用,則可以把它寫成自定義函數,在用到的時候調用它。從Flash 5開始,ActionScript就支持自定義函數,而不用像Flash 4那樣,把程序寫在一個空白幀中,然後用Call語句去調用了。
(4)支持XML和XMLSocket。除了通過getURL()和loadVariablesNum等幾種由Flash 4提供的方法和後台程序實現交互外,ActionScript更提供了XML和XMLSocket對象來和後台程序進行交互。任何基于XML標準開發的程序都能和Flash相結合,通過XML對象,Flash可以發送或獲取XML資料並對XML資料進行分析,借此達到交換數據的目的。Flash MX對XML的支持在Flash 5的基礎上又做了進一步的擴充。
1.1.3 Flash MX ActionScript編程元素
在這一小節中要介紹ActionScript中的一些基本編程元素,了解了這些才能學好ActionScript。
(1)對象。對象是一個非常重要的概念。從Flash 5開始,ActionScript就是面向對象的程序語言了,所以,對象對于ActionScript來說,是最為重要的概念,一切都基于對象,一切都離不開對象。在ActionScript中,對象分為兩類,一類是用戶自己制作的動畫元件(Symbol)實例化後而形成的實體對象(Instance Object),聲明這類對象後,可以在ActionScript堆砌的屬性和動作行為進行控制;另一類是Flash MX自己定義的抽象對象(Abstract Object),例如Math, Date等,這類對象主要用于計算。
(2)點運算符。通過點運算符,可以訪問一個對象的屬性(Property)或是方法(Method)。例如,一個對象名叫myObject,它有一個myProperty屬性和myMethod()方法,可以通過myObject.myProperty和myObject.myMethod()來分別訪問它們。
(3)數據類型以及變量。在Flash MX ActionScript中,提供了豐富的數據類型,從整數、字符、布爾值到各種對象甚至MovieClip都是不同的數據類型。在變量方面,ActionScript允許聲明全局變量和局部變量。所謂全局變量,也就是聲明一次,在整個動畫的ActionScript程序都可以使用的變量;所謂局部變量,就是在函數中聲明,只能在函數中被使用的局部性的變量。
(4)事件響應。在Flash動畫中,動畫的交互性就是通過對用戶動作的響應來完成的。在ActionScript中,用戶的事件有鼠標事件、鍵盤事件等,諸如鼠標的移動、按鈕的按下和松開、拖動以及鍵盤上的按鍵被按下等都屬于用戶事件的範疇。ActionScript可以通過On()方法來進行響應。
(5)語句和運算符。Flash MX ActionScript的語法風格和JavaScript的非常類似,同樣有判斷、循環等控制流程的語句,同時還提供了豐富的運算符號。當然多條語句組成的一個常用的功能可以被封裝成一個自定義函數。這些都使得ActionScript更易于使用。
熟練地使用好這些編程元素,就可以編寫出強大的ActionScript腳本,使Flash動畫擁有良好的交互性。
1.1.4 如何編輯ActionScript腳本
在Flash中要使用ActionScript有兩種方式,一種是直接在Flash中寫入ActionScript程序段,另一種是在Flash中包含引入*.as文件(腳本文件)。
要在Flash中寫入ActionScript程序,就要在Actions面板(Action Panel)中進行編輯。前面說過,Flash中的ActionScript按載體的不同可以分為兩大類,一類在幀(Frame)上,另一類是在按鈕(Button Symbol)中。所以,在編輯這兩類不同的ActionScript腳本時,打開Actions面板方法也略有不同。
編輯加載于幀(Frame)中的ActionScript時,在Timeline中要加載的那一幀上單擊鼠標右鍵,在彈出的菜單(如圖1-1所示)上選擇Actions命令,就會彈出ActionScript的編輯面板。
如果要編輯按鈕的ActionScript,則只要在按鈕上單擊右鍵,如圖1-2所示,同樣選擇Actions,就會彈出編輯該按鈕的ActionScript的Actions 面板。

圖1-1 圖1-2
下面就來看看如何使用Actions面板來編輯ActionScript代碼。
圖1-3是Actions面板。可以在圖中看到,整個面板被分成左右兩大部分。在面板的最上方,是一個下拉菜單,在這里,可以選擇要編輯的ActionScript代碼是屬于哪一個物體的,例如,哪一幀或哪一個按鈕。在圖1-3的例子中,將要編輯的ActionScript是屬于Symbol 1這個按鈕的。下拉菜單的下面,就是分為左右兩大部分的腳本編輯窗口。左面是ActionScript語句選擇區,右面是ActionScript代碼編輯區。可以看到,在左面的語句選擇區中,各種ActionScript中的語句、運算符、對象等都被分門別類地以樹狀的格式排好,這樣,在編輯ActionScript代碼的時候,用戶就能根據需要很快找到合適的語句或對象。在使用的時候,可能因為編輯區的代碼行較長,需要頻繁橫向翻動才能夠顯示全部的代碼,這時候,可以用語句選擇區右側的
按鈕來控制顯示或隱藏選擇區,來擴大編輯區的顯示範圍。

圖1-3
在右側的編輯區下方是一個文本框,這是編輯ActionScript的主要場所。除了這個文本框,編輯區里還有許多按鈕。在按鈕之上的一塊灰色區域是參數設置區,選中一行代碼後,可以在這里設定一些ActionScript函數的參數。下面將一一介紹代碼編輯區內的各按鈕的功能︰
Ö
使Actions面板總在屏幕上顯示(再按一次取消);
Ö
打開ActionScript的語法參考手冊;
Ö
添加一條ActionScript語句;
Ö
刪除一條ActionScript語句;
Ö
在編輯文本框內查找指定字符串;
Ö
在編輯文本框中查找並替換指定字符串;
Ö
插入一個目標路徑(關于ActionScript的路徑將在以後說明);
Ö
設置/刪除斷點,在調試ActionScript代碼時非常有用,程序執行到斷點處將暫停執行,這時就可以查看程序運行的中間結果,有助于排錯;
Ö
切換專家模式和普通模式,以及標注行號功能。在普通模式下,每一句ActionScript語句都是從左側的語句選擇區所選得的,適合于對ActionScript非常熟悉的用戶使用。在專家模式下,ActionScript編輯框內可以自由輸入、自由書寫ActionScript代碼,這時,可以不通過左側的語句選擇區而直接輸入ActionScript代碼,以提高編寫代碼的速度,適合精通ActionScript的用戶使用;
Ö
將當前ActionScript語句下移一行;
Ö
將當前ActionScript語句上移一行。
在了解了這些按鈕的功用之後,可以發現,ActionScript雖然只是Flash內部使用的腳本語言,但是從編輯到調試,功能十分完善,而且編輯界面十分友好,幫助也十分齊全。

