- ActionScript 3.0從入門(mén)到精通(視頻實(shí)戰(zhàn)版)
- 蔣國(guó)強(qiáng) 岳元亞等編著
- 988字
- 2018-12-31 19:52:43
第一篇 ActionScript 3.0編程基礎(chǔ)
第1章 ActionScript 3.0概述
ActionScript 3.0是針對(duì)Flash Player運(yùn)行時(shí)環(huán)境的編程語(yǔ)言,它具有處理各種人機(jī)交互、數(shù)據(jù)交互等功能。本章將粗略地介紹ActionScript語(yǔ)言的發(fā)展歷史、新增特色、編程環(huán)境,并編寫(xiě)第一個(gè)ActionScript 3.0程序等內(nèi)容。
1.1 關(guān)于ActionScript 3.0
ActionScript 3.0是隨著Adobe Flash CS3和Flex 2.0的推出而同步推出的腳本編程語(yǔ)言。本節(jié)將對(duì)ActionScript 3.0進(jìn)行簡(jiǎn)要的介紹,并通過(guò)一些具體的實(shí)例圖片,展示常見(jiàn)的ActionScript的應(yīng)用領(lǐng)域。
1.1.1 ActionScript 3.0介紹
ActionScript 3.0與ActionScript以前的版本有本質(zhì)上的不同。它是一門(mén)功能強(qiáng)大、符合業(yè)界標(biāo)準(zhǔn)的面向?qū)ο蟮木幊陶Z(yǔ)言。它在Flash編程語(yǔ)言中有著里程碑式的作用,是用來(lái)開(kāi)發(fā)富Internet應(yīng)用程序(Rich Internet Applications,RIA)的重要語(yǔ)言。
ActionScript 3.0在用于腳本撰寫(xiě)的國(guó)際標(biāo)準(zhǔn)化編程語(yǔ)言ECMAScript的基礎(chǔ)之上,對(duì)該語(yǔ)言做了進(jìn)一步的改進(jìn),可為開(kāi)發(fā)人員提供用于富Internet應(yīng)用程序的可靠的編程模型。開(kāi)發(fā)人員可以獲得卓越的性能并簡(jiǎn)化開(kāi)發(fā)過(guò)程,便于利用非常復(fù)雜的應(yīng)用程序、大的數(shù)據(jù)集和面向?qū)ο蟮摹⒖芍貜?fù)使用的基本代碼。ActionScript 3.0在Flash Player 10中新的ActionScript虛擬機(jī)(AVM2)內(nèi)執(zhí)行,可為下一代RIA帶來(lái)性能突破。
Adobe公司于2007年6月11日推出了Adobe Integrated Runtime(AIR)的Beta版,正式提出了新的富Internet應(yīng)用程序概念。2008年2月25日,AIR 1.0正式版和Flex 3.0集成發(fā)布。AIR允許開(kāi)發(fā)人員使用Flex或HTML/CSS/JavaScript組合來(lái)構(gòu)建桌面應(yīng)用程序。它是一款連接本地操作系統(tǒng)與在線的網(wǎng)絡(luò)應(yīng)用之間的橋梁,它能讓平常要在網(wǎng)絡(luò)上瀏覽使用的網(wǎng)頁(yè)程序(如Flash、HTML、JavaScript、AJAX)直接安裝在用戶(hù)的計(jì)算機(jī)上,可以直接在計(jì)算機(jī)上執(zhí)行,不必打開(kāi)網(wǎng)頁(yè)瀏覽器。
無(wú)論是IE支持的Flash Player播放器,還是AIR程序,都真正支持跨系統(tǒng)應(yīng)用,其核心語(yǔ)言都是ActionScrpit 3.0。
1.1.2 ActionScript 3.0能做什么
最初在Flash中引入ActionScript,目的是為了實(shí)現(xiàn)對(duì)Flash影片的播放控制。而ActionScript發(fā)展到今天,其已經(jīng)廣泛地應(yīng)用到了多個(gè)領(lǐng)域,能夠?qū)崿F(xiàn)豐富的應(yīng)用功能。
ActionScript 3.0最基本的應(yīng)用與創(chuàng)作工具Adobe Flash CS5結(jié)合,創(chuàng)建各種不同的應(yīng)用特效,實(shí)現(xiàn)豐富多彩的動(dòng)畫(huà)效果,使Flash創(chuàng)建的動(dòng)畫(huà)更加人性化,更具有彈性效果。在這些基礎(chǔ)應(yīng)用當(dāng)中,應(yīng)用最為廣泛的就是使用ActionScript腳本控制的彈性菜單。下面是一個(gè)彈性的效果,如圖1.1所示。

圖1.1 彈性菜單效果圖
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和網(wǎng)頁(yè)制作技術(shù)的進(jìn)步,使用Flash與ActionScript腳本語(yǔ)言創(chuàng)作的網(wǎng)站,動(dòng)畫(huà)效果更強(qiáng),數(shù)據(jù)交互速度更快、更方便,成為RIA開(kāi)發(fā)技術(shù)的典范。下面是一個(gè)Flash網(wǎng)站的首頁(yè),效果如圖1.2所示。

圖1.2 Flash網(wǎng)站效果圖
網(wǎng)絡(luò)流媒體技術(shù)的廣泛應(yīng)用,使得Flash與ActionScript結(jié)合創(chuàng)作的音樂(lè)播放器和視頻播放器在網(wǎng)絡(luò)上廣泛流行,特別是網(wǎng)絡(luò)視頻網(wǎng)站,已經(jīng)成為Flash網(wǎng)絡(luò)應(yīng)用中的一個(gè)熱點(diǎn)。圖1.3是一個(gè)網(wǎng)絡(luò)視頻播放器效果圖。

圖1.3 網(wǎng)絡(luò)視頻播放器效果圖
最近兩年,F(xiàn)lash游戲也成為Flash應(yīng)用的一個(gè)重點(diǎn)領(lǐng)域,受到廣大游戲玩家的追捧。使用Flash與ActionScript創(chuàng)作的游戲,由于其具有方便、簡(jiǎn)單易用、綠色且文件小等優(yōu)勢(shì),在網(wǎng)絡(luò)上廣泛流傳,也是企業(yè)開(kāi)發(fā)的重點(diǎn)。下面是一款Flash賽車(chē)游戲的抓圖,效果如圖1.4所示。

圖1.4 賽車(chē)游戲效果圖
Flash與ActionScript腳本語(yǔ)言結(jié)合,廣泛用于課件制作領(lǐng)域,不僅包含純粹的教育領(lǐng)域,其他的企業(yè)和政府機(jī)構(gòu)的培訓(xùn)課程,都已經(jīng)開(kāi)始使用Flash和ActionScript語(yǔ)言來(lái)進(jìn)行創(chuàng)作和實(shí)施教學(xué)。下面是一個(gè)課件的頁(yè)面,效果如圖1.5所示。

圖1.5 課件應(yīng)用效果圖
ActionScript 3.0的應(yīng)用領(lǐng)域還有很多,特別是在應(yīng)用面向?qū)ο缶幊痰慕裉欤鋺?yīng)用肯定會(huì)有一個(gè)更廣闊的天地。
1.2 ActionScript 3.0的新特色
ActionScript 3.0包括兩部分:核心語(yǔ)言和Flash Player API。核心語(yǔ)言用于定義編程語(yǔ)言的基本結(jié)構(gòu),比如聲明變量,創(chuàng)建表達(dá)式控制程序結(jié)構(gòu)和數(shù)據(jù)類(lèi)型等。Flash Player API由一系列用于實(shí)現(xiàn)特定功能的Flash Player類(lèi)組成。
1.2.1 核心語(yǔ)言的新特色
ActionScript 3.0核心語(yǔ)言與ECMAScript標(biāo)準(zhǔn)兼容,并和新改進(jìn)的一些功能區(qū)域進(jìn)行結(jié)合。下面是ActionScript 3.0的一些新特點(diǎn)。
1. 運(yùn)行時(shí)的異常處理機(jī)制
在ActionScript 2.0以及以前的版本中,許多運(yùn)行時(shí)的錯(cuò)誤都沒(méi)有記錄,也沒(méi)有給予反饋調(diào)試。這樣雖然能夠保證Flash Player的順利運(yùn)行,程序不被中斷,但是會(huì)使程序的調(diào)試倍加困難。ActionScript 3.0中會(huì)出現(xiàn)更多的錯(cuò)誤提示。運(yùn)行時(shí)的異常用于常見(jiàn)的錯(cuò)誤情形,能夠使用戶(hù)可靠地處理錯(cuò)誤的應(yīng)用程序。當(dāng)程序運(yùn)行出現(xiàn)異常時(shí),還可以提供帶有源文件和行號(hào)的堆棧跟蹤,能夠幫助用戶(hù)快速定位錯(cuò)誤,進(jìn)一步改進(jìn)調(diào)試的效率。
2. 運(yùn)行時(shí)類(lèi)型
在ActionScript 2.0中,嚴(yán)格數(shù)據(jù)類(lèi)型的檢查只是局限于編譯過(guò)程。在運(yùn)行的時(shí)候,由于所有值的類(lèi)型都是動(dòng)態(tài)的,并不含有類(lèi)型信息。也就是說(shuō),類(lèi)型注釋主要是為開(kāi)發(fā)者提供一個(gè)幫助。在ActionScript 3.0中,類(lèi)型信息在運(yùn)行時(shí)依然保留,并且可以用于多種目的。Flash Player 10執(zhí)行運(yùn)行時(shí)類(lèi)型檢查,增強(qiáng)了系統(tǒng)的類(lèi)型安全性。類(lèi)型信息還可以通過(guò)以本機(jī)形式表示變量,從而減少了內(nèi)存的使用量,提高了性能。
3. 密封類(lèi)
ActionScript 3.0中引入了密封類(lèi)的概念。密封類(lèi)只能擁有在編譯時(shí)定義的固定的一組屬性和方法,不能再添加其他屬性和方法。這樣就使編譯檢查更加嚴(yán)格,增強(qiáng)了程序的可靠性。由于不要求每一個(gè)對(duì)象實(shí)例都有一個(gè)內(nèi)部散列表,從而提高了內(nèi)存的使用率。當(dāng)然這樣仍可以實(shí)現(xiàn)動(dòng)態(tài)類(lèi),不過(guò)需要使用dynamic關(guān)鍵字實(shí)現(xiàn)。默認(rèn)情況下,ActionScript 3.0的類(lèi)都是密封類(lèi)。
4. 閉包方法
ActionScript 3.0中使用閉包方法可以自動(dòng)記起它的原始對(duì)象實(shí)例。此功能主要是為了改進(jìn)ActionScript 2.0中this關(guān)鍵字無(wú)法記住自身指向的原始對(duì)象而加入的。
5. E4X
ActionScript 3.0實(shí)現(xiàn)了對(duì)先進(jìn)的ECMAScript for XML的完全支持。E4X提供了一組操作XML的語(yǔ)言構(gòu)造,使XML數(shù)據(jù)的處理更為簡(jiǎn)單,成倍地降低了代碼的數(shù)量,簡(jiǎn)化了XML應(yīng)用程序的開(kāi)發(fā),大大提高了開(kāi)發(fā)的效率。
6. 正則表達(dá)式
由于ECMAScript第3版語(yǔ)言規(guī)范中對(duì)正則表達(dá)式進(jìn)行了定義,從而使ActionScript 3.0實(shí)現(xiàn)了對(duì)正則表達(dá)式的支持。使用正則表達(dá)式,大大增強(qiáng)了字符串處理功能。
7. 命名空間
ActionScript 3.0中的命名空間是一種創(chuàng)新機(jī)制,用以控制聲明的可見(jiàn)性。命名空間和用于控制聲明的public、private等可見(jiàn)的傳統(tǒng)訪問(wèn)說(shuō)明符類(lèi)似。其本質(zhì)是通過(guò)自定義路徑,能夠使用用戶(hù)所選擇的名字。用戶(hù)也可以聲明自己的命名空間,定義出不同的訪問(wèn)控制權(quán)限。
8. 新基元類(lèi)型
ActionScript 2.0中的數(shù)值類(lèi)型只有Number,它是一種雙精度浮點(diǎn)數(shù)。ActionScript 3.0又增加了int和uint類(lèi)型。int類(lèi)型是一個(gè)帶符號(hào)的32位整數(shù),而uint是無(wú)符號(hào)的整數(shù),可用于儲(chǔ)存RGB顏色值和字節(jié)計(jì)算等。
1.2.2 Flash Player API 新功能
Flash Player API是為增強(qiáng)Flash Player容納ActionScript語(yǔ)言的能力而引入的一組類(lèi)和功能。這種功能在ActionScript核心語(yǔ)言和Flash平臺(tái)之間建立了一座橋梁,大大提高了Flash應(yīng)用程序的能力,并對(duì)核心語(yǔ)言起到了重要的補(bǔ)充作用。下面列出一些Flash Player API功能的新特點(diǎn)。
1. DOM3事件模型
模仿W3C DOM3事件規(guī)格建立的DOM3事件模型在ActionScript 3.0中更加清晰、高效。該事件模型提供了生成和處理事件信息的一種標(biāo)準(zhǔn)方法,從而使應(yīng)用程序內(nèi)的對(duì)象可以相互通信,保持狀態(tài)并能對(duì)更改做出響應(yīng)。
2. 顯示列表API
新的顯示列表是ActionScript 3.0中的重大革新。原有的顯示結(jié)構(gòu)發(fā)生了重大的改變,新的容器類(lèi)用于顯示對(duì)象的存儲(chǔ),比Movie Clip更加輕量、有效;新的深度管理體系由Flash Player自動(dòng)管理深度,并提供了方法用于管理z軸。另外,由于有了顯示列表的存在,遍歷對(duì)象也就更加輕松自如。
此外,文本的改進(jìn)和對(duì)二進(jìn)制的支持也是新的特色。
1.3 Flash CS5的動(dòng)作面板介紹
Flash CS5中可以使用動(dòng)作面板、腳本窗口或者外部編輯器的創(chuàng)作環(huán)境中添加ActionScript代碼。本節(jié)就來(lái)介紹一下Flash CS5的動(dòng)作面板窗口和Flash CS自帶的編輯器窗口,并將詳細(xì)介紹功能按鈕的作用。
1.3.1 動(dòng)作面板概述
如果要在Flash CS5中加入ActionScript代碼,可以直接使用動(dòng)作面板來(lái)輸入。
要打開(kāi)動(dòng)作面板,請(qǐng)執(zhí)行下面的操作:?jiǎn)螕簟敬翱凇縷【動(dòng)作】,或者按【F9】鍵。
打開(kāi)后的動(dòng)作面板如圖1.6所示。

圖1.6 動(dòng)作面板
下面對(duì)圖中各部分的名稱(chēng)及作用加以說(shuō)明。
A:腳本窗格,用于輸入代碼的地方。
B:面板菜單,單擊后可顯示動(dòng)作面板功能菜單。
C:動(dòng)作工具箱,可以通過(guò)雙擊或者拖動(dòng)的方式將其中的ActionScript元素添加到腳本窗格中。
D:腳本導(dǎo)航器,其有兩個(gè)功能,一是通過(guò)單擊其中的項(xiàng)目,可以將與該項(xiàng)目相關(guān)的代碼顯示在腳本窗口中;二是通過(guò)雙擊其中的項(xiàng)目,對(duì)該項(xiàng)目的代碼進(jìn)行固定操作。
1.3.2 腳本窗口概述
ActionScript 3.0是很好的面向?qū)ο缶幊陶Z(yǔ)言,同樣Flash CS5也提供了一個(gè)很不錯(cuò)的腳本編輯器,這就是Flash的腳本窗口。使用腳本窗口可以創(chuàng)建或者導(dǎo)入外部的腳本文件,這些文件可以是ActionScript、Flash Communication或Flash JavaScript文件。
要打開(kāi)腳本窗口,請(qǐng)執(zhí)行下面的操作:
1) 單擊【文件】|【新建】,打開(kāi)“新建文檔”對(duì)話框,如圖1.7所示。

圖1.7 “新建文檔”對(duì)話框
2) 選擇“ActionScript文件”,單擊【確定】按鈕。打開(kāi)的腳本窗口如圖1.8所示。

圖1.8 腳本窗口
這樣就可以在腳本窗口中編輯ActionScript代碼了。
1.3.3 動(dòng)作面板和腳本窗口的工具介紹
在動(dòng)作面板和腳本窗口的上部都有一排功能按鈕,利用這些功能按鈕可以很方便地進(jìn)行ActionScript代碼的輸入和編寫(xiě),下面對(duì)這些按鈕進(jìn)行具體的說(shuō)明。
:將新項(xiàng)目添加到腳本中按鈕。該按鈕主要用于顯示語(yǔ)言元素,這些元素同時(shí)也會(huì)顯示在“動(dòng)作”工具箱中。可以利用它來(lái)選擇要添加到腳本中的項(xiàng)目或者元素名稱(chēng)。
:查找按鈕。主要用于查找并替換腳本中的文本。
:插入目標(biāo)路徑按鈕(僅限動(dòng)作面板)。可以幫助為腳本中的某個(gè)動(dòng)作設(shè)置絕對(duì)或相對(duì)目標(biāo)路徑。
:語(yǔ)法檢查按鈕。用于檢查當(dāng)前腳本中的語(yǔ)法錯(cuò)誤。
:自動(dòng)套用格式按鈕。用來(lái)調(diào)整腳本的格式,以實(shí)現(xiàn)正確的編碼語(yǔ)法和更好的可讀性。
:顯示代碼提示按鈕。在關(guān)閉自動(dòng)代碼提示時(shí),可使用此按鈕來(lái)顯示正在執(zhí)行的代碼行的代碼提示。
:調(diào)試選項(xiàng)按鈕(僅限動(dòng)作面板)。用于設(shè)置和刪除斷點(diǎn),以便在調(diào)試時(shí)可以逐行執(zhí)行腳本中的每一行。
:折疊成對(duì)大括號(hào)按鈕。用于對(duì)出現(xiàn)在當(dāng)前包含插入點(diǎn)的成對(duì)大括號(hào)或小括號(hào)間的代碼進(jìn)行折疊。
:折疊所選按鈕。用于折疊當(dāng)前所選的代碼塊。
:展開(kāi)全部按鈕。用于展開(kāi)當(dāng)前腳本中所有折疊的代碼。
:應(yīng)用塊注釋按鈕。用于將注釋標(biāo)記添加到所選代碼塊的開(kāi)頭和結(jié)尾。
:應(yīng)用行注釋按鈕。用于在插入點(diǎn)處或所選多行代碼中每一行的開(kāi)頭處添加單行注釋標(biāo)記。
:刪除注釋按鈕。用于從當(dāng)前行或當(dāng)前選擇內(nèi)容的所有行中刪除注釋標(biāo)記。
:顯示/隱藏工具箱按鈕。用于顯示或隱藏“動(dòng)作”工具箱。
:腳本助手按鈕(僅限動(dòng)作面板)。用于打開(kāi)和關(guān)閉“腳本助手”模式。
:幫助按鈕。用于顯示腳本窗口中所選ActionScript元素的參考信息。
:面板菜單(僅限動(dòng)作面板)。包含適用于動(dòng)作面板的命令和首選參數(shù)。
注意
在腳本窗口中要慎用“自動(dòng)套用格式”按鈕,否則會(huì)造成未知的錯(cuò)誤。比如下面的代碼:
return Math.floor((n - 1) * Math.random());
說(shuō)明
在執(zhí)行“自動(dòng)套用格式”按鈕之后,變?yōu)椋?/p>
return Math.floor(n - 1 * Math.random());
說(shuō)明
代碼執(zhí)行的語(yǔ)法和原意完全不同。
1.4 ActionScript 3.0的首選參數(shù)設(shè)置
無(wú)論是在動(dòng)作面板還是在腳本窗口中編輯ActionScript代碼,都可以通過(guò)設(shè)置首選參數(shù)來(lái)配置輸入的ActionScript代碼的格式。
要設(shè)置ActionScript 3.0的首選參數(shù),需要先打開(kāi)首選參數(shù)窗口。請(qǐng)執(zhí)行下面的操作:選擇【編輯】|【首選參數(shù)】,打開(kāi)“首選參數(shù)”對(duì)話框,如圖1.9所示。

圖1.9 “首選參數(shù)”對(duì)話框
通過(guò)首選參數(shù)設(shè)置,可以設(shè)置如下參數(shù):
?自動(dòng)縮進(jìn):若勾選了該選項(xiàng),則在輸入左小括號(hào)“(”或左大括號(hào)“{”之后輸入的文本將按照“制表符大小”設(shè)置自動(dòng)縮進(jìn)。
?制表符大小:指定新行中將縮進(jìn)的字符數(shù)目。
?代碼提示:若選擇此選項(xiàng),則在動(dòng)作面板或者腳本窗口中能夠啟用代碼提示,方便代碼輸入。
?延遲:指定代碼提示出現(xiàn)之前的延遲時(shí)間(以秒為單位)。
?字體:指定用于腳本的字體。
?使用動(dòng)態(tài)字體映射:選中此選項(xiàng)可確保所選的字體系列呈現(xiàn)每個(gè)字符。如果沒(méi)有,F(xiàn)lash會(huì)替換上一個(gè)包含必需字符的字體系列。
?打開(kāi)/導(dǎo)入:指定打開(kāi)或?qū)階ctionScript文件時(shí)使用的字符編碼格式。
?保存/導(dǎo)出:指定保存或?qū)С鯝ctionScript文件時(shí)使用的字符編碼。
?重新加載修改的文件:指定腳本文件被修改、移動(dòng)或刪除時(shí)將如何操作。
?語(yǔ)法顏色:指定在腳本中輸入的代碼顯示的顏色。
?語(yǔ)言:打開(kāi)“ActionScript設(shè)置”對(duì)話框,可以在其中設(shè)置ActionScript 2.0或3.0的類(lèi)路徑。
對(duì)于初學(xué)者來(lái)說(shuō),編寫(xiě)ActionScript代碼時(shí),使用代碼提示是一個(gè)很好的主意。下面就來(lái)介紹幾種使用代碼提示的方法。
1. 工具提示樣式的代碼提示
在需要括號(hào)的元素(例如方法名稱(chēng)、for、if或do while之類(lèi)的命令等)后輸入一個(gè)左括號(hào)“(”以顯示代碼提示,如圖1.10所示。

圖1.10 代碼工具提示樣式
這樣,可以根據(jù)提示輸入相應(yīng)的代碼,以提高用戶(hù)編寫(xiě)腳本的速度。要使代碼提示消失,可以輸入右括號(hào)“)”或者用鼠標(biāo)左鍵單擊該語(yǔ)句之外的地方。
2. 使用菜單樣式的代碼提示
通過(guò)在變量或者對(duì)象名稱(chēng)后輸入“.”來(lái)顯示代碼提示,如圖1.11所示。

圖1.11 代碼菜單提示樣式
可用向上和向下箭頭鍵選擇要使用的屬性和方法。要使代碼提示消失,可以選擇需要的屬性,或者用鼠標(biāo)左鍵單擊語(yǔ)句之外的地方。
1.5 面向?qū)ο缶幊谈攀?/h3>
ActionScript 3.0是為面向?qū)ο缶幊潭鴾?zhǔn)備的一種腳本語(yǔ)言。本節(jié)將簡(jiǎn)單介紹一下面向?qū)ο缶幊痰幕靖拍睢?/p>
面向?qū)ο缶幊蹋∣bject Oriented Programming,OOP)是指面向?qū)ο蟪绦蛟O(shè)計(jì),它是一種計(jì)算機(jī)編程架構(gòu)。
程序(program)是為實(shí)現(xiàn)特定目標(biāo)或者解決特定問(wèn)題而用計(jì)算機(jī)語(yǔ)言編寫(xiě)的命令序列的集合。它可以是一些用高級(jí)程序語(yǔ)言開(kāi)發(fā)的可以運(yùn)行的可執(zhí)行文件,也可以是一些用應(yīng)用軟件制作的可執(zhí)行文件,比如Flash編譯之后的SWF文件。
編程是指為了實(shí)現(xiàn)某種目的或需求,使用各種不同的程序語(yǔ)言進(jìn)行設(shè)計(jì),編寫(xiě)能夠?qū)崿F(xiàn)這些需求的可執(zhí)行文件。
面向?qū)ο缶幊痰幕驹瓌t是程序由多個(gè)能夠起到不同功能的組織單元或者對(duì)象組合而成。其要達(dá)到的基本目標(biāo)是:重用性、靈活性和可擴(kuò)展性。在整體設(shè)計(jì)的過(guò)程中,需要使每一個(gè)對(duì)象(單元)都能夠接收和處理數(shù)據(jù)信息,并能夠發(fā)出反饋信息。為了實(shí)現(xiàn)這些目標(biāo),就需要使用類(lèi)、對(duì)象控制數(shù)據(jù)和信息,使用繼承實(shí)現(xiàn)功能的衍生。
抽象意義上的對(duì)象是一種將狀態(tài)和行為結(jié)合在一起的軟件構(gòu)造,其目的是用來(lái)描述真實(shí)世界的一個(gè)物理或概念性的對(duì)象。實(shí)際意義上的對(duì)象指一個(gè)具體的實(shí)體或?qū)嵗磳?shí)實(shí)在在存在著的物體。
在通常情況下,對(duì)象使用屬性和方法來(lái)描述。屬性指對(duì)象狀態(tài)所對(duì)應(yīng)的數(shù)據(jù),比如人這一對(duì)象,它有身高、體重等屬性。方法指對(duì)象所能發(fā)生的行為,比如人有吃飯、穿衣等行為。
另外,需要知道對(duì)象在什么時(shí)間發(fā)生了什么行為,或者對(duì)象在什么時(shí)間執(zhí)行了某些操作,還需要了解執(zhí)行的是什么操作。為了達(dá)到這個(gè)目的,在編程過(guò)程中使用“事件”這一概念來(lái)描述對(duì)象做了什么,有什么動(dòng)作,或者接受了什么動(dòng)作。
類(lèi)是抽象化的對(duì)象。將大量對(duì)象共有的屬性和方法抽象出來(lái),用一個(gè)統(tǒng)一的文件來(lái)定義和管理,這就是類(lèi)。
類(lèi)是抽象化的概念,比如“自行車(chē)”。對(duì)象是類(lèi)的具體化,比如“我的自行車(chē)”。
繼承是指一個(gè)對(duì)象直接使用另一對(duì)象的屬性和方法。比如“汽車(chē)”是一個(gè)大的對(duì)象,它可以分為各種不同的車(chē)型,如小汽車(chē)、卡車(chē)、公共汽車(chē)等。它們都具有汽車(chē)的共有特征,如都有4個(gè)輪子、都能夠被駕駛等。這樣就可以用“汽車(chē)”這一對(duì)象來(lái)概括它們共有的這些特征,然后各種不同車(chē)型的車(chē)都可以使用“汽車(chē)”對(duì)象的屬性和方法,這就是繼承。習(xí)慣上將上一級(jí)對(duì)象的類(lèi)稱(chēng)為“父類(lèi)”,將從父類(lèi)繼承而得到的類(lèi)稱(chēng)為“子類(lèi)”。
接口是指實(shí)現(xiàn)在計(jì)算機(jī)不同功能層之間相互通信的實(shí)施規(guī)則。API(Application Programming Interface)指應(yīng)用程序編程接口,是實(shí)現(xiàn)程序不同功能之間相互通信的接口技術(shù)和方法。
1.6 Flash CS5的第一個(gè)“Welcome You”
Flash CS5中有兩種寫(xiě)入ActionScript 3.0代碼的方法:
?在時(shí)間軸的關(guān)鍵幀加入ActionScript代碼。
?在外部寫(xiě)出一個(gè)單獨(dú)的ActionScript類(lèi)文件,然后綁定或者導(dǎo)入到fla文件中。
ActionScript中的類(lèi)有3種用法:一是和Flash中的庫(kù)元件進(jìn)行綁定;二是和fla文件綁定;三是使用import關(guān)鍵字導(dǎo)入類(lèi)。
用ActionScript 3.0開(kāi)發(fā)的程序中,推薦文檔與代碼分離,不推薦把代碼寫(xiě)在關(guān)鍵幀上。下面用兩種方法來(lái)開(kāi)始第一個(gè)“Welcome You”程序。
1.6.1 在關(guān)鍵幀上加入代碼
打開(kāi)Flash CS5,新建一個(gè)Flash文件(ActionScript 3.0)。建好后,單擊時(shí)間軸的第一幀,打開(kāi)動(dòng)作面板,輸入如下代碼:
trace("Welcome You");
效果如圖1.12所示。

圖1.12 動(dòng)作面板編寫(xiě)代碼效果
按下【Ctrl+Enter】組合鍵,測(cè)試影片。這時(shí)可以看到有一個(gè)Flash Player窗口和一個(gè)輸出面板窗口,面板中顯示“Welcome You”,效果如圖1.13所示。

圖1.13 輸出窗口顯示效果
第一種Welcome You程序大功告成!
說(shuō)明
trace()語(yǔ)句的作用是向“輸出”面板發(fā)送特定信息。比如,測(cè)試SWF文件,當(dāng)單擊按鈕或播放幀時(shí),可以將結(jié)果發(fā)送到“輸出”面板。trace()語(yǔ)句類(lèi)似于JavaScript alert語(yǔ)句。
其用法格式為:
trace(... arguments);
說(shuō)明
參數(shù)為要計(jì)算的一個(gè)或多個(gè)參數(shù)或者表達(dá)式,多個(gè)參數(shù)使用逗號(hào)隔開(kāi)。
1.6.2 利用文檔類(lèi)制作第一個(gè)“Welcome You”程序
ActionScript 3.0的一個(gè)新特色就是文檔類(lèi),也就是把外部的ActionScript類(lèi)文件和fla文件進(jìn)行綁定,編譯的時(shí)候?qū)WF文件看做類(lèi)的一個(gè)實(shí)例。
下面來(lái)具體操作一下:
打開(kāi)Flash CS5,新建一個(gè)Flash文件(ActionScript 3.0),保存為Welcome.fla。
打開(kāi)腳本窗口,新建一個(gè)ActionScript文件,保存為Welcome.as,注意要和Welcome.fla放在同一個(gè)目錄下。在代碼窗口輸入如下代碼:
package { import flash.display.Sprite public class Welcome extends Sprite { public function Welcome() { trace("Welcome You"); } } }
回到welcome.fla窗口,按下【Ctrl+F3】組合鍵,打開(kāi)“屬性”面板,在文檔類(lèi)文本框中輸入“Welcome”,如圖1.14所示。

圖1.14 綁定文檔類(lèi)效果圖
按下【Ctrl+Enter】組合鍵,測(cè)試影片。這時(shí)可以看到有一個(gè)Flash Player窗口和一個(gè)輸出面板窗口,面板中顯示“Welcome You”。輸出的效果如圖1.15所示。

圖1.15 輸出窗口顯示效果
至此,第二種Welcome You程序大功告成!
1.7 練習(xí)題
1. 關(guān)于AS 3.0下面描述正確的是( )。
A. AS 3.0不能創(chuàng)建動(dòng)態(tài)類(lèi),類(lèi)的屬性和方法只能是固定的
B. Flash Player 10中,AS 3.0在新的虛擬機(jī)(AVM2)內(nèi)執(zhí)行,以前版本的ActionScript在AVM1內(nèi)執(zhí)行
C. AS 3.0 this仍然不能準(zhǔn)確記錄當(dāng)前引用的原始對(duì)象位置
D. 在Flash CS5中,可以將AS 2.0代碼寫(xiě)到時(shí)間軸上,AS 3.0代碼則不可以寫(xiě)到時(shí)間軸上
2. Flash CS5打開(kāi)動(dòng)作面板的快捷鍵是( )。
A. F1
B. F6
C. F9
D. F10
3. AS 3.0中增加了int、uint數(shù)值類(lèi)型,簡(jiǎn)述它們和Number類(lèi)型的區(qū)別。
4. 實(shí)踐
1)用Flash CS5(或Flash CS4)新建一個(gè)AS 3.0 Flash文件,新建文檔類(lèi)Welcome.as,輸出“hello world”。
2)用Flash CS5(或Flash CS4)新建一個(gè)AS 3.0 Flash文件,在時(shí)間軸添加代碼,輸出“hello world”。
第一種方法是代碼和文檔分離,推薦的開(kāi)發(fā)方式。
第二種是AS 2.0常用的方式,不再推薦。
5. 簡(jiǎn)述AS 3.0比AS 2.0有了哪些變化。
- Vue.js快跑:構(gòu)建觸手可及的高性能Web應(yīng)用
- Android 7編程入門(mén)經(jīng)典:使用Android Studio 2(第4版)
- 精通Scrapy網(wǎng)絡(luò)爬蟲(chóng)
- Windows Phone 7.5:Building Location-aware Applications
- OpenCV 3計(jì)算機(jī)視覺(jué):Python語(yǔ)言實(shí)現(xiàn)(原書(shū)第2版)
- Django Design Patterns and Best Practices
- Go語(yǔ)言入門(mén)經(jīng)典
- INSTANT Apache ServiceMix How-to
- Elasticsearch搜索引擎構(gòu)建入門(mén)與實(shí)戰(zhàn)
- Java EE程序設(shè)計(jì)與開(kāi)發(fā)實(shí)踐教程
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)
- jQuery EasyUI從零開(kāi)始學(xué)
- Getting Started with SQL Server 2014 Administration
- C/C++程序設(shè)計(jì)教程:面向過(guò)程分冊(cè)
- C++ Primer(中文版)(第5版)