Actionscript-教程3.0完全自學(xué)

上傳人:夜曲 文檔編號:253403128 上傳時間:2024-12-13 格式:PPT 頁數(shù):498 大小:3.01MB
收藏 版權(quán)申訴 舉報 下載
Actionscript-教程3.0完全自學(xué)_第1頁
第1頁 / 共498頁
Actionscript-教程3.0完全自學(xué)_第2頁
第2頁 / 共498頁
Actionscript-教程3.0完全自學(xué)_第3頁
第3頁 / 共498頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《Actionscript-教程3.0完全自學(xué)》由會員分享,可在線閱讀,更多相關(guān)《Actionscript-教程3.0完全自學(xué)(498頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,第,1,章,AcionScript 3.0,概述,ActionScript 3.0是針對Flash Player運行時環(huán)境的編程語言,它用于處理各種人機交互、數(shù)據(jù)交互等功能。本章將粗略的介紹ActionScript語言的進展歷史、新增特色、編程環(huán)境等內(nèi)容,以及第一個ActionScript3.0程序。,1.1,關(guān)于,ActionScript 3.0,ActionScript3.0是隨著Adobe Flash CS3和Flex 2.0的推出而同步推出的腳本編程語言。本節(jié)將對ActionScr

2、ipt3.0進展簡要的介紹,并通過一些具體的實例圖片,呈現(xiàn)了常見的ActionScript的應(yīng)用領(lǐng)域。,1.1.1 ActionScript 3.0,介紹,ActionScript3.0與ActionScript以前的版本有個本質(zhì)上的不同。它是一門功能強大、符合業(yè)界標(biāo)準(zhǔn)的一門面對對象的編程語言。它在Flash編程語言中有著里程碑的作用,是用來開發(fā)富應(yīng)用程序〔RIA〕的重要語言。,,ActionScript 3.0在用于腳本撰寫的國際標(biāo)準(zhǔn)化編程語言ECMAScript的根底之上,對該語言做了進一步的改進,可為開發(fā)人員供給用于豐富Internet應(yīng)用程序〔RIA〕的牢靠的編程模型。開發(fā)人員可以獲

3、得卓越的性能并簡化開發(fā)過程,便于利用特殊簡潔的應(yīng)用程序、大的數(shù)據(jù)集和面對對象的、可重復(fù)使用的根本代碼。ActionScript 3.0在Flash Player 9中新的ActionScript虛擬機〔AVM2〕內(nèi)執(zhí)行,可為下一代RIA帶來性能突破。,1.1.2 ActionScript 3.0,能做什么,最初在Flash中引入ActionScript,目的是為了實現(xiàn)對Flash影片的播放把握。而ActionScript進展到今日,其已經(jīng)廣泛的應(yīng)用到了多個領(lǐng)域,能夠?qū)崿F(xiàn)豐富的應(yīng)用功能。,,ActionScript 3.0最根本的應(yīng)用與創(chuàng)作工具Adobe Flash CS3結(jié)合,創(chuàng)立各種不同的

4、應(yīng)用特效,實現(xiàn)豐富多彩的動畫效果,使Flash創(chuàng)立的動畫更加人性話,更具有彈性效果。這些根底應(yīng)用當(dāng)中,應(yīng)用最為廣泛的就是使用ActionScript腳本把握的彈性菜單。下面是一個彈性的效果,,1.2 ActionScript 3.0,的新特色,ActionScript 3.0包括二局部:核心語言和Flash Player API。核心語言用于定義編程語言的根本構(gòu)造, 比方聲明變量,創(chuàng)立表達式把握程序構(gòu)造和數(shù)據(jù)類型等。Flash Player API是由一系列用于實現(xiàn)特定功能的flash player類組成。,1.2.1,核心語言的新特色,ActionScript3.0核心語言與ECMAScr

5、ipt標(biāo)準(zhǔn)兼容,并和新改進的一些功能區(qū)域進展結(jié)合。下面是對一些其開發(fā)者便利的地方和用法總結(jié)的一些新特點:,,1.運行時的特殊處理機制,,2.運行時類型,,3.密封類,,4.閉包方法,,5.E4X,,6.正則表達式,,7.命名空間,,8.新基元類型,1.2.1 Flash Player API,新功能,Flash Player API為增加Flash Player容納ActionScript語言的力氣而引入的一組類和功能。這種功能把ActionScript核心語言和Flash平臺之間建立了一座橋梁,大大提高了Flash應(yīng)用程序的力氣,并對核心語言起到了重要的補充作用。下面列出一些Flash P

6、layer API功能的新特點:,,1.DOM3大事模型,,2.顯示列表API,1.3 Flash CS3,的動作面板介紹,Flash CS3中可以使用動作面板、“腳本窗口”或者外部編輯器的創(chuàng)作環(huán)境中田間ActionScript代碼。本節(jié)就來介紹一下Flash CS3的動作面板窗口和Flash CS自帶的編輯器窗口,并將具體的介紹功能按鈕的作用。,1.3.1,動作面板概述,假設(shè)要在Flash CS3中參與ActionScript代碼,可以直接使用動作面板來輸入。,,要翻開動作面板,請執(zhí)行下面的操作:單擊【窗口|【動作】,或者按【F9】。,,翻開后的動作面板如以以下圖。,,下面對圖中各局部的名

7、稱及作用加以說明。,,A:腳本窗格,用于輸入代碼的地方。,,B:面板菜單,單擊后可顯示動作面板功能菜單,,C:動作工具箱,可以通過雙擊或者拖動的方式將其中的ActionScript元素添加到腳本窗格中。,,D:腳本導(dǎo)航器,其有兩個功能,一是通過單擊其中的工程,可以將與該工程相關(guān)的代碼顯示在腳本窗口中,二是通過雙擊其中的工程,對該工程的代碼進展固定操作。,1.3.2,腳本窗口概述,Action Script 3.0是很好的面對對象編程語言,同樣Flash CS3也供給了一個很不錯的腳本編輯器,這就是Flash的腳本窗口。使用腳本窗口可以創(chuàng)立或者導(dǎo)入外部的腳本文件,這些文件可以是ActionScr

8、ipt、Flash Communication或Flash JavaScript文件。,1.3.3,動作面板和腳本窗口的工具介紹,在動作面板和腳本窗口的上側(cè)都有一排功能按鈕,利用這些功能按鈕可以很方面的進展ActionScript代碼的輸入和編寫,下面對這些按鈕進展具體的說明。,,:將新工程添加到腳本中按鈕,該按鈕主要用于顯示語言元素,這些元素同時也會顯示在“動作”工具箱中??梢岳盟鼇磉x擇要添加到腳本中的工程或者元素名稱。,,:查找按鈕,主要用于查找并替換腳本中的文本。,,:插入目標(biāo)路徑按鈕〔僅限動作面板〕,可以幫助為腳本中的某個動作設(shè)置確定或相對目標(biāo)路徑。,,:語法檢查按鈕,用于檢查當(dāng)前腳

9、本中的語法錯誤。,,:自動套用格式按鈕,用來調(diào)整腳本的格式以實現(xiàn)正確的編碼語法和更好的可讀性。,,:顯示代碼提示按鈕:用于在關(guān)閉了自動代碼提示時,可使用此按鈕來顯示正在吃力的代碼行的代碼提示。,,:調(diào)試選項按鈕〔僅限動作面板〕,用于設(shè)置和刪除斷點,以便在調(diào)試時可以逐行執(zhí)行腳本中的每一行。,1.3.3,動作面板和腳本窗口的工具介紹,:折疊成對大括號按鈕,用于對消逝在當(dāng)前包含插入點的成對大括號或小括號間的代碼進展折疊。,,:折疊所選按鈕:用于折疊當(dāng)前所選的代碼塊。,,:開放全部按鈕:用于開放當(dāng)前腳本中全部折疊的代碼。,,:應(yīng)用塊注釋按鈕,用于將注釋標(biāo)記添加到所選代碼塊的開頭和結(jié)尾。,,:應(yīng)用行注釋

10、按鈕,用于在插入點處或所選多行代碼中每一行的開頭處添加單行注釋標(biāo)記。,,:刪除注釋按鈕,用于從當(dāng)前行或當(dāng)前選擇內(nèi)容的全部行中刪除注釋標(biāo)記。,,:顯示/隱蔽工具箱按鈕,用于顯示或隱蔽“動作”工具箱。,,:腳本助手按鈕〔僅限動作面板〕,其用于翻開和關(guān)閉“腳本助手”模式。,,:幫助按鈕,用于顯示“腳本”窗格中所選 ActionScript 元素的參考信息。,,:面板菜單 〔僅限動作面板〕,包含適用于動作面板的命令和首選參數(shù)。,,,1.4 ActionScript 3.0,的首選參數(shù)設(shè)置,無論是在動作面板還是腳本窗口中編輯ActionScript代碼,都可以通過設(shè)置首先參數(shù)來配置輸入的ActionS

11、cript代碼的格式。,,要設(shè)置ActionScript 3.0的首選參數(shù),需要先翻開首選參數(shù)窗口。請執(zhí)行下面的操作:選擇【編輯】|【首選參數(shù)】,翻開首選參數(shù)對話框,,,1. 工具提示樣式的代碼提示,,2.使用菜單樣式的代碼提示,1.5 面對對象編程概述,ActionScript 3.0是為面對對象編程而預(yù)備的一種腳本語言。本節(jié)將簡潔介紹一下面對對象編程的根本概念。,,面對對象編程,英文為:Object Oriented Programming,簡寫為OOP,意思為面對對象程序設(shè)計,它是一種計算機編程架構(gòu)。,,程序〔program〕是為實現(xiàn)特定目標(biāo)或者解決特定問題而用計算機語言編寫的命令序列

12、的集合。它可以是一些高級程序語言開發(fā)出來的可以運行的可執(zhí)行文件,也可以是一些應(yīng)用軟件制作出的可執(zhí)行文件,比方Flash編譯之后的SWF文件。,,編程是指為了實現(xiàn)某種目的或需求,使用各種不同的程序語言進展設(shè)計,編寫能夠?qū)崿F(xiàn)這些需求的可執(zhí)行文件。,1.6 Flash CS3,的第一個“,Welcome You”,Flash CS3中有兩種寫入ActionScript 3.0代碼的方法:,,一種是在時間軸的關(guān)鍵幀參與ActionScript代碼。,,另一種是在外部寫出呢個單獨的ActionScript類文件,然后在綁定或者導(dǎo)入到fla文件中來。,,ActionScript中的類有三種用法:一是和F

13、lash中的庫元件進展綁定;二是和fla文件綁定;三是使用import關(guān)鍵字導(dǎo)入類。,,ActionScript3.0開發(fā)的程序,推舉文檔與代碼分別,不推舉把代碼寫在關(guān)鍵幀上。下面用兩種方法來開頭第一個“Welcome You”程序。,,1.在關(guān)鍵幀上參與代碼,,2.利用文檔類制造第一個“Welcome You”程序,第2章 AS3.0編程語言根底,語法、數(shù)據(jù)、變量、運算符和語句構(gòu)成了編程語言的根底。本章將通過大量的測試代碼。具體的介紹ActionScript 3.0中的語法、數(shù)據(jù)類型,變量以及運算符。通過本章的學(xué)習(xí),為以后的面對對象編程將打下一個堅實的根底。,2.1 AS3.0,語法,任

14、何一門編程語言在編寫代碼時都必需遵循確定的規(guī)章,這個規(guī)章就是語法。本節(jié)將著重介紹從ActionScript 2.0開頭使用的點語法和區(qū)分大小寫,了解編程常用的標(biāo)點符號的使用,以及程序注釋的使用方法。,2.1.1,點語法,Flash中使用點〔.〕運算符來訪問對象的屬性和方法,點運算符主要用于下面的幾個方面。,,1.可以承受對象后面跟點運算符的屬性名稱〔方法〕名稱來引用對象的屬性〔方法〕。,,2.可以承受點運算符表示包路徑。,,3.可以使用點運算符描述顯示對象的路徑。,2.1.2,標(biāo)點符號使用,在Flash中有多種標(biāo)點符號都很常用,分別為:分號〔;〕、逗號〔,〕、冒號〔:〕、小括號〔〕、中括號〔[

15、]〕和大括號〔{}〕。這些標(biāo)點符號在Flash中都有各自不同的作用,可以幫助定義數(shù)據(jù)類型,終止語句或者構(gòu)建ActionScript代碼塊。,,1.分號〔;〕:ActionScript語句用分號(;)字符表示語句完畢。,,2.逗號〔,〕:逗號的作用主要用于分割參數(shù),比方函數(shù)的參數(shù),方法的參數(shù)等等。,,3.冒號〔:〕:冒號的作用主要用于為變量指定數(shù)據(jù)類型。要為一個變量指明數(shù)據(jù)類型,需要使用var關(guān)鍵字和后冒號法為其指定。,,4.小括號〔〕:小括號在ActionScript3.0中有三種用途。,,首先,在數(shù)學(xué)運算方面,可以用來轉(zhuǎn)變表達式的運算挨次。小括號內(nèi)的數(shù)學(xué)表達式優(yōu)先運算。,,其次,在表達式運算

16、方面,可以結(jié)合使用小括號和逗號運算符,來優(yōu)先計算一系列表達式的結(jié)果并返回最終一個表達式的結(jié)果。,,5.中括號〔[]〕:中括號主要用于數(shù)組的定義和訪問,,,6.大括號〔{}〕:大括號主要用于編程語言程序把握,函數(shù)和類中。,,在構(gòu)成把握構(gòu)造的每個語句前后添加大括號〔例如if..else 或for〕,即使該把握構(gòu)造只包含一個語句。,2.1.3,注釋,注釋是使用一些簡潔易懂的語言對代碼進展簡潔的解釋的方法。注釋語句在編譯過程中并不會進展求值運算。可以用注釋來描述代碼的作用,或者返回到文檔中的數(shù)據(jù)。注釋也可以幫助記憶編程的原理,并有助于其他人的閱讀。假設(shè)代碼中有些內(nèi)容閱讀起來含義大不明顯,應(yīng)當(dāng)對其添加注

17、釋。,,ActionScript3.0中的注釋語句有兩種:單行注釋和多行注釋。,,單行注釋以兩個單斜杠〔//〕開頭,之后的該行內(nèi)容均為注釋。比方下面的代碼:,,trace(“1234“)//輸出:1234,2.1.4 關(guān)鍵字和保存字,保存字,從字面上就很簡潔知道這是保存給ActionScript 3.0語言使用的英文單詞。因而不能使用這些單詞作為變量、實例、類名稱等。假設(shè)在代碼中使用了這些單詞,編譯器會報錯。,,ActionScript3.0中的保存字分為3類:詞匯關(guān)鍵字、語法關(guān)鍵字和供將來使用的保存字。,,1.詞匯關(guān)鍵字,,2.句法關(guān)鍵字,,3.供將來使用的保存字。,2.2,變量和常量,變

18、量和常量,都是為了儲存數(shù)據(jù)而創(chuàng)立的。變量和常量就像是一個容器,用于容納各種不同類型的數(shù)據(jù)。固然對變量進展操作,變量的數(shù)據(jù)就會發(fā)生轉(zhuǎn)變,而常量則不會。,,變量必需要先聲明后使用,否則編譯器就會報錯。道理很簡潔,比方現(xiàn)在要去喝水,那么你首先要有一個杯子,否則怎么樣去裝水呢?要聲明變量的緣由與此一樣。,2.2.1,聲明變量的語法,在ActionScript 3.0中,使用var關(guān)鍵字來聲明變量。格式如下所示。,,var 變量名:數(shù)據(jù)類型;,,var 變量名:數(shù)據(jù)類型=值;,,變量名加冒號加數(shù)據(jù)類型就是聲明的變量的根本格式。要聲明一個初始值,需要加上一個等號并在其后輸入響應(yīng)的值。但值的類型必需要和前面

19、的數(shù)據(jù)類型全都。,2.2.2 變量的命名規(guī)章,變量的命名既是任意的,又是有規(guī)章,有目的的。順手牽來、雜亂無章的命名在Flash里面簡潔引起代碼的混亂,也不簡潔進展維護操作。,,變量的命名首先要遵循下面的幾條原則:,,它必需是一個標(biāo)識符。它的第一個字符必需是字母、下劃線〔_〕或美元記號〔$〕。其后的字符必需是字母、數(shù)字、下劃線或美元記號。留意:不能使用數(shù)字作為變量名稱的第一個字母。,,它不能是關(guān)鍵字或動作腳本文本,例如true、false、null或undefined。特殊不能使用ActionScript的保存字,否則編譯器會報錯。,,它在其范圍內(nèi)必需是惟一的,不能重復(fù)定義變量。,2.2.3,

20、變量的作用域,變量的作用域指可以使用或者引用該變量的范圍,通常變量依據(jù)其作用域的不同可以分為全局變量和局部變量。全局變量指在函數(shù)或者類之外定義的變量,而在類或者函數(shù)之內(nèi)定義的變量為局部變量。,,全局變量在代碼的任何地方都可以訪問,所以在函數(shù)之外聲明的變量同樣可以訪問,如下面的代碼,函數(shù)Test外聲明的變量i在函數(shù)體內(nèi)同樣可以訪問。,,var i:int=1;,,//定義Test函數(shù),,function Test {,,trace(i);,,},,Test//輸出:1,2.2.4,變量的默認值,變量的默認值是指變量在沒有賦值之前的值。對于,ActionScript3.0,的數(shù)據(jù)類型來說,都有各自

21、的默認值,下面使用代碼來測試一下:,,通過上面的代碼輸出,已經(jīng)可以得到這些數(shù)據(jù)類型變量的默認值,分別為:,,Boolean,型變量的默認值是:,false,。,,int,型變量的默認值是:,0,。,,Number,型變量的默認值是:,NaN,。,,Object,型變量的默認值是:,null,。,,String,型變量的默認值是:,null,。,,uint,型變量的默認值是:,0,。,,*型變量的默認值是:,undefined,。,2.2.5,使用,const,聲明常量,Action Script 3.0中增加了一個const關(guān)鍵字,用于聲明常量。常量是指具有無法轉(zhuǎn)變的固定值的屬性。比方Math

22、.PI就是一個常量。常量可以看做一種特殊的變量,不過這種變量不能賦值,不能更改而已。,,使用用const聲明常量的語法格式和var聲明的變量的格式一樣:,,const 常量名:數(shù)據(jù)類型;,,const 常量名:數(shù)據(jù)類型=值;,,下面聲明常量的代碼:,,const g:Number=9.8;,2.3 根底數(shù)據(jù)類型,和其它的面對對象的編程的數(shù)據(jù)類型一樣,ActionScript3.0的數(shù)據(jù)類型同樣分為兩種,具體劃分方式如下所示。,,基元型數(shù)據(jù)類型:Boolean、int、Number、String和uint。,,簡潔型數(shù)據(jù)類型:Array、Date、Error、Function、RegExp、X

23、ML和XMLList。,,一般來說,基元值的處理速度通常比簡潔值的處理速度要快。,,基元型數(shù)據(jù)和簡潔型數(shù)據(jù)類型的最大的區(qū)分是:基元型是值對類型數(shù)據(jù),而簡潔型是引用類型數(shù)據(jù)。值對類型直接儲存數(shù)據(jù),使用它為另一個的變量賦值之后,假設(shè)另一個變量轉(zhuǎn)變,并不影響原變量的值。引用類型指向要操作的對象,另一個變量引用這個變量之后,假設(shè)另一變量發(fā)生轉(zhuǎn)變,原有的變量跟著也要發(fā)生轉(zhuǎn)變。,,基元型數(shù)據(jù)類型都是值對類型數(shù)據(jù),簡潔型數(shù)據(jù)都是引用類型數(shù)據(jù)。,,另外,最明顯的一個區(qū)分是,假設(shè)數(shù)據(jù)類型能夠使用new關(guān)鍵字創(chuàng)立,那么它確定是引用型數(shù)據(jù)變量。,2.3.1 根底數(shù)據(jù)類型說明,本節(jié)通過大量的測試代碼,來說明各種不同

24、的數(shù)據(jù)類型的用法和使用中的留意事項。,,1.Boolean 數(shù)據(jù)類型,,2.?dāng)?shù)字:int、uint和Number,,3.String 數(shù)據(jù)類型,,4.Array數(shù)組類型,,5.Object數(shù)據(jù)類型,,6.Object數(shù)據(jù)類型,2.3.2,數(shù)據(jù)類型檢查,任何編程代碼在執(zhí)行前或者執(zhí)行時都要執(zhí)行數(shù)據(jù)類型的檢查,以避開消逝數(shù)據(jù)錯誤。ActionScript 3.0是動態(tài)類型的語言,它默認的是執(zhí)行時進展數(shù)據(jù)類型檢查。同時它也在適合使用“嚴格模式”的編譯器在編譯時執(zhí)行數(shù)據(jù)類型檢查。在使用嚴格模式的編譯器中,數(shù)據(jù)類型檢查既可以在執(zhí)行前執(zhí)行編譯器檢查,也可以在運行時執(zhí)行運行時檢查。在標(biāo)準(zhǔn)模式下,只支持默認的執(zhí)

25、行時數(shù)據(jù)類型檢查。,,比方說在程序編寫過程中,要明確傳遞變量值的類型和承受參數(shù)類型一樣。比方下面的代碼:,,function func(mystr:String) {,,trace(mystr);,,},,var str:String=“welcome you“;,,func(str);,2.3.3,隱式數(shù)據(jù)類型轉(zhuǎn)換,數(shù)據(jù)類型轉(zhuǎn)換是指把某個值轉(zhuǎn)換為其它類型的數(shù)據(jù)。類型的轉(zhuǎn)換有兩種方式:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。隱式轉(zhuǎn)換又稱為強制轉(zhuǎn)換,由Flash Player在運行時執(zhí)行。比方將2賦值給Boolean數(shù)據(jù)類型的變量,則Flash Player會先將2轉(zhuǎn)換為布爾值true,然后再將其賦值給該變量。,,

26、隱式轉(zhuǎn)換可以稱為自動轉(zhuǎn)換,是在程序編譯的過程中由程序本身來進展數(shù)據(jù)類型的轉(zhuǎn)換。它主要發(fā)生在很多上下文中。主要分為以下幾種狀況:,,在賦值語句中。,,在將值作為函數(shù)的參數(shù)傳遞時。,,在從函數(shù)中返回值時。,,在使用某些運算符〔如加法運算符〔+〕〕的表達式中。,2.3.4,顯式數(shù)據(jù)類型轉(zhuǎn)換,顯式轉(zhuǎn)換是指代碼假設(shè)指示編譯器將一個數(shù)據(jù)類型的變量視為屬于另一個類型的變量時執(zhí)行該轉(zhuǎn)換。該轉(zhuǎn)換主要利用數(shù)據(jù)類型的對象名稱來轉(zhuǎn)換。常用的數(shù)據(jù)轉(zhuǎn)換均為此方式。,,顯示轉(zhuǎn)換是利用數(shù)據(jù)類型的對象名稱來轉(zhuǎn)換,常見的主要有下面的幾種。,,1.轉(zhuǎn)換為 int、uint 和 Number,,2.轉(zhuǎn)換為Boolean,,3.轉(zhuǎn)換為

27、 String,2.3.5,無類型說明符,ActionScript 3.0引入了三種特殊類型的無類型說明符:*,void和null。,,使用*類型用于指定屬性是無類型的。使用*作為類型注釋與不使用類型注釋等效。從無類型屬性中讀取的表達式可視為無類型表達式。該說明符主要用于兩個方面:將數(shù)據(jù)類型檢查延緩到運行時和將undefined存儲在屬性中。,,void用于說明定函數(shù)無法返回任何值。void類型只有一個值:undefined。該說明符僅用于聲明函數(shù)的返回類型。,,null是一個沒有值的特殊數(shù)據(jù)類型。Null數(shù)據(jù)類型只有一個值:null。Null數(shù)據(jù)類型的不與任何類相關(guān)聯(lián)。不行將Null數(shù)據(jù)類型

28、用作屬性的類型注釋。,2.4,運算符與表達式,學(xué)習(xí)一門編程語言,首先要弄清晰的就是如何對其中的數(shù)據(jù)進展運算。使用表達式來表達想要到達的效果,使用運算符來進展相關(guān)的運算,這就是數(shù)據(jù)運算的關(guān)鍵。本節(jié)主要介紹常用的運算符的用法。,2.4.1 運算符和表達式根底學(xué)問,運算符是可以通過給出的一個或者多個值來產(chǎn)生另一個值的東西??梢哉f它是一種特殊的函數(shù)。其中的值稱為“操作數(shù)”,具體包括字面值、變量和表達式。,,運算符分為三種:一元運算符、二元運算符、三元運算符。一元運算符只運算一個值,例如遞增運算符++;二元運算符比較常見,ActionScript 3.0中大局部運算符都是二元運算符;三元運算符具有三個

29、操作數(shù),例如條件運算符〔?:〕具有3個操作數(shù)。,2.4.2,賦值運算符,賦值運算符有兩個操作數(shù),它依據(jù)一個操作數(shù)的值對另一個操作數(shù)進展賦值操作。ActionScript中的賦值運算有12個,,,賦值運算符,運算符,執(zhí)行的運算,=,賦值,*=,乘法賦值,/=,除法賦值,%=,求模賦值,+=,加法賦值,-=,減法賦值,<<=,按位向左移位賦值,>>=,按位向右移位賦值,>>>=,按位無符號向右移位賦值,&=,按位,",與,",賦值,^=,按位,",異或,",賦值,|=,按位,",或,",賦值,2.4.3,算術(shù)運算符,算術(shù)運算符共有6個,分別為:加、減、乘、除、模運算和求反運算。,,加、減、乘、除的

30、運算很簡潔,請看下面的代碼例如:,,var a:int=1;,,var b:int=2;,,var c:int=a+b;,,var d:int=a-b;,,var e:int=a*b;,,var f:int=a/b;,2.4.4,算術(shù)賦值運算符,算術(shù)賦值運算符和算術(shù)運算符對應(yīng),共有5個,分別為+=、-=、*=、/=和%=。和賦值運算符一樣,運算符的左邊只能是變量。右側(cè)是一個要值、變量或表達式。,,這種類型的賦值運算符有時也叫做自賦值運算符,就是利用自己進展運算并賦值給自己。比方下面的代碼語句:,,a+=1;,,其要表達的運算過程就是下面的的代碼要執(zhí)行的運算過程。,,a=a+1;,2.4.5,關(guān)

31、系運算符,關(guān)系運算符用于比較兩個操作數(shù)的值的大小關(guān)系。常見的關(guān)系運算符一般分為兩類:一類用于推斷大小關(guān)系,一類用于推斷相等關(guān)系。其具體狀況如下:,,推斷大小關(guān)系:>大于運算符、=大于等于運算符、<=小于等于運算符。,,推斷相等關(guān)系:==等于運算符、!=不等于運算符、===嚴格等于運算符、!==嚴格不等于運算符。,,關(guān)系運算符左右兩側(cè)可以是數(shù)值、變量或者表達式。關(guān)系表達式的結(jié)果是Boolean值,flase或者true。,,1.推斷大小關(guān)系的運算符,,2.推斷相等關(guān)系的運算符:,2.4.6 規(guī)律運算符,規(guī)律運算符有3個,分別為:&&規(guī)律“與”運算符、||規(guī)律“或”運算符和!規(guī)律“非”運算符。規(guī)

32、律運算符常用于規(guī)律運算,運算的結(jié)果為Boolean型。,,規(guī)律與〔&&〕和規(guī)律或〔||〕運算表達式要求左右兩側(cè)的表達式或者變量必需是Boolean型的值。,,&&:左右兩側(cè)有一個為flase,結(jié)果都為flase;只有兩側(cè)都為true,結(jié)果才為true。,,||:左右兩側(cè)有一個為true,結(jié)果都為true;只有兩側(cè)都為false,結(jié)果才為false。,2.4.7,按位和按位賦值運算符,按位運算符共有6個,分別為:&按位“與”、^按位“異或”、|按位“或”、>按位右移位、>>>按位無符號移位。同樣,按位賦值運算符也有6個,比照按位運算符分別為:&=按位“與”賦值、^=按位“異或”賦值、|=按位“或

33、”賦值、>=按位右移位賦值、>>>=按位無符號移位賦值。,,按位操作需要把十進制的整數(shù),轉(zhuǎn)換為二進制的數(shù),然后進展操作。,,按位與操作過程:按位與操作的規(guī)章為:1+1=1,1+0=0,0+1=0,0+0=0。比方11&34,11轉(zhuǎn)二進制數(shù)為001011,34轉(zhuǎn)二進制數(shù)為100010?,F(xiàn)在依據(jù)位置從右向左第一位分別為1和0,所以取與后仍為0,依次取與的最終結(jié)果為000010。000010轉(zhuǎn)為十進制數(shù)為2,所以最終的輸出結(jié)果為2。代碼如下所示。,,var a:int=11;,,var b:int=34;,,trace(a//輸出為:2,2.4.8,遞加遞減運算符,++遞加運算符和—遞減運算符常用于

34、循環(huán)計算過程中,對循環(huán)中的變量進展遞加或者遞減操作。比方i++,它等價于i=i+1。測試代碼如下:,,var i:int=0,,i++,,trace(i)//輸出:1,,同樣,i—等價于i=i-1。測試代碼如下:,,var i:int=5;,,i--;,,trace(i);//輸出:4,2.4.9,三元條件運算符,?:運算符是唯一的一個三元運算符,也就是說,這個運算符有三個操作數(shù)。具體的語法格式如下:,,(條件表達式)?〔表達式1〕:(表達式2),,格式說明如下:,,條件表達式:推斷表達式,通過規(guī)律推斷,得到一個Boolean型的結(jié)果。,,表達式1:推斷表達式的結(jié)果為true,執(zhí)行該語句。,,

35、表達式2:推斷表達式的結(jié)果為false,執(zhí)行該語句。,2.4.10,其它運算符,在ActionScript3.0中還有幾個常見的運算符,如:typeof、is、as。下面對這幾個運算符進展簡潔的說明:,,1.typeof運算符:typeof用于測試對象的的類型,使用的方法如下:,,typeof(對象);,,2.is運算符:is運算符用于推斷一個對象是不是屬于一種數(shù)據(jù)類型,返回Boolean型變量。假設(shè)對象屬于同一類型,則返回true,否則返回false。,,3.a(chǎn)s運算符:as運算符和is運算符的使用格式一樣,但是返回的值不同。假設(shè)對象的類型一樣,返回對象的值;假設(shè)不同,則返回null。,2.

36、4.11,運算符的優(yōu)先級,運算符的優(yōu)先級挨次預(yù)備了一個表達式運算挨次。就像數(shù)學(xué)中的乘除運算要優(yōu)于加減運算一樣,ActionScript 3.0 中的各運算符之間也有一個優(yōu)先運算的挨次。具體請參照表所示。,運算符優(yōu)先挨次表,組,運算符,主要,[] {x:y} () f(x) new x.y x[y] @ :: ..,后綴,x++ x--,一元,++x --x + - ~ ! delete typeof void,乘法,* / %,加法,+ -,按位移位,> >>>,關(guān)系, = as in instanceof is,等于,== != === !==,按位,",與,",&,按位,",異或,",^

37、,按位,",或,",|,邏輯,",與,",&&,邏輯,",或,",||,條件,?:,賦值,= *= /= %= += -= >= >>>= &= ^= |=,逗號,,,第,3,章,AS3.0,程序設(shè)計,任何一門編程語言都要設(shè)計程序問題,ActionScript 3.0也不例外。在本章中,將介紹ActionScript3.0系統(tǒng)的根本語句以及程序設(shè)計的一般過程。首先介紹一下程序把握的規(guī)律運算,然后著重介紹條件語句和循環(huán)語句。,3.1 規(guī)律運算,在程序設(shè)計的過程中,要實現(xiàn)程序設(shè)計的目的,必需進展規(guī)律運算。只有進展規(guī)律運算,才能把握程序不斷向最終要到達的目的前進,知道最終實現(xiàn)目標(biāo)。,,規(guī)律運算又稱

38、為布爾運算,通常用來測試真假值。規(guī)律運算主要使用條件表達式進展推斷,假設(shè)符合條件,則返回結(jié)果true,不符合條件,返回結(jié)果false。,,條件表達式中最常見的形式就是利 用關(guān)系運算符進展操作數(shù)比較,進而得到推斷條件。,,固然,有的狀況下需要把握的條件比較多,那么就需要使用規(guī)律表達式進展規(guī)律運算,得到一個的組合條件,并把握最終的輸出結(jié)果。,,常見的條件表達式舉例如下:,,〔a>0〕:表示推斷條件為a>0。假設(shè)是,返回true;否則返回false。,,〔a==b〕&&〔a>0〕:表示推斷條件為a大于0,并且a與b相等。假設(shè)是,返回true,否則返回false。,,〔a==b〕||〔a>0〕:表示推

39、斷條件為a大于0,或者a與b相等。假設(shè)是,返回true,否則返回false。,3.2 程序的三種構(gòu)造,在程序設(shè)計的過程中,假設(shè)把握程序,如何安排每句代碼執(zhí)行的先后次序,這個先后執(zhí)行的次序,稱之為“構(gòu)造”。常見的程序構(gòu)造有三種:挨次構(gòu)造、選擇構(gòu)造和循環(huán)構(gòu)造。本節(jié)將逐個介紹一下這三種程序構(gòu)造的概念和流程。,3.2.1 挨次構(gòu)造,挨次構(gòu)造最簡潔,就是依據(jù)代碼的挨次,一句一句的執(zhí)行操作,構(gòu)造如圖3-1所示。,,ActionScript代碼中的簡潔語句都是依據(jù)挨次進展處理,這就是挨次構(gòu)造。請看下面的例如代碼。,,//執(zhí)行的第一句代碼,初始化一個變量,,var a:int;,,//執(zhí)行其次句代碼,給變

40、量a賦值數(shù)值1,,a=1;,,//執(zhí)行第三句代碼,變量a執(zhí)行遞加操作,,a++;,3.2.2 選擇構(gòu)造,當(dāng)程序有多種可能的選擇時,就要使用選擇構(gòu)造。選擇那一個,要依據(jù)條件表達式的計算結(jié)果而定。構(gòu)造如以以下圖。,3.2.3 循環(huán)構(gòu)造,循環(huán)構(gòu)造就是屢次執(zhí)行同一組代碼,重復(fù)的次數(shù)由一個數(shù)值或條件來預(yù)備。構(gòu)造如以以下圖。,3.3 選擇程序構(gòu)造,選擇程序構(gòu)造就是利用不同的條件去執(zhí)行不同的語句或者代碼。ActionScript 3.0有三個可用來把握程序流的根本條件語句。其分別為if..else條件語句、if..else if條件語句、switch條件語句。本節(jié)將具體講解這三種不同的選擇程序構(gòu)造。,

41、3.3.1 if..else,條件語句,if..else條件語句推斷一個把握條件,假設(shè)該條件能夠成立,則執(zhí)行一個代碼塊,否則執(zhí)行另一個代碼塊。,,if..else條件語句根本格式如下:,,if(表達式){,,語句1,,},,else,,{,,語句2;,,},3.3.2 if..else if..else,語句,if..else,條件語句執(zhí)行的操作最多只有兩種選擇,要是有更多的選擇,那就可以使用,if..else if..else,條件語句。,3.3.3 Switch,語句,Switch語句相等于一系列的if..else if..語句,但是要比if語句要清晰的多。switch 語句不是對條

42、件進展測試以獲得布爾值,而是對表達式進展求值并使用計算結(jié)果來確定要執(zhí)行的代碼塊。,,Switch語句格式如下:,,switch (表達式) {,,case:,,程序語句1;,,break;,,case:,,程序語句2;,,break;,,case:,,程序語句3;,,break;,,default:,,默認執(zhí)行程序語句;,,},3.4 循環(huán)程序構(gòu)造,在現(xiàn)實生活中有很多規(guī)律性的操作,作為程序來說就是要重復(fù)執(zhí)行某些代碼。其中重復(fù)執(zhí)行的代碼稱為循環(huán)體,能否重復(fù)操作,取決于循環(huán)的把握條件。循環(huán)語句可以認為是由循環(huán)體和把握條件兩局部組成。,,循環(huán)程序構(gòu)造的構(gòu)造一般認為有兩種:,,一種先進展條件推斷,假

43、設(shè)條件成立,執(zhí)行循環(huán)體代碼,執(zhí)行完之后再進展條件推斷,條件成立連續(xù),否則退出循環(huán)。假設(shè)第一次條件就不滿足,則一次也不執(zhí)行,直接退出。,,另一種是先執(zhí)行依次操作,不管條件,執(zhí)行完成之后進展條件推斷,假設(shè)條件成立,循環(huán)連續(xù),否則退出循環(huán)。,3.4.1 for,循環(huán)語句,for循環(huán)語句是ActionScript編程語言中最靈敏、應(yīng)用最為廣泛的語句。for循環(huán)語句語法格式如下:,,for(初始化;循環(huán)條件;步進語句) {,,循環(huán)執(zhí)行的語句;,,},,格式說明如下:,,初始化:把程序循環(huán)體中需要使用的變量進展初始化。留意要使用var關(guān)鍵字來定義變量,否則編譯時會報錯。,,循環(huán)條件:規(guī)律運算表達式,運算

44、的結(jié)果預(yù)備循環(huán)的進程。假設(shè)為flase,退出循環(huán),否則連續(xù)執(zhí)行循環(huán)代碼。,,步進語句:算術(shù)表達式,用于轉(zhuǎn)變循環(huán)變量的值。通常為使用++〔遞增〕或--〔遞減〕運算符的賦值表達式。,,循環(huán)執(zhí)行的語句:循環(huán)體,通過不斷轉(zhuǎn)變變量的值,已到達需要實現(xiàn)的目標(biāo)。,3.4.2 while,循環(huán)語句,while循環(huán)語句是典型的“當(dāng)型循環(huán)”語句,意思是當(dāng)滿足條件時,執(zhí)行循環(huán)體的內(nèi)容。while循環(huán)語句語法格式如下:,,while(循環(huán)條件) {,,循環(huán)執(zhí)行的語句,,},,格式說明如下:,,循環(huán)條件:規(guī)律運算表達式,運算的結(jié)果預(yù)備循環(huán)的進程。假設(shè)為true,連續(xù)執(zhí)行循環(huán)代碼,否則退出循環(huán)。,,循環(huán)執(zhí)行的語句:循環(huán)

45、體,其中包括變量轉(zhuǎn)變賦值表達式,執(zhí)行語句并實現(xiàn)變量賦值。,3.4.3 do..while,循環(huán)語句,do…while循環(huán)是另一一種while循環(huán),它保證至少執(zhí)行一次循環(huán)代碼,這是由于其是在執(zhí)行代碼塊后才會檢查循環(huán)條件。do…while循環(huán)語句語法格式如下:,,do {,,循環(huán)執(zhí)行的語句,,} while (循環(huán)條件),,循環(huán)執(zhí)行的語句:循環(huán)體,其中包括變量轉(zhuǎn)變賦值表達式,執(zhí)行語句并實現(xiàn)變量賦值。,,循環(huán)條件:規(guī)律運算表達式,運算的結(jié)果預(yù)備循環(huán)的進程。假設(shè)為true,連續(xù)執(zhí)行循環(huán)代碼,否則退出循環(huán)。,3.4.4 for..in,和,for each..in,語句,for..in和for ea

46、ch..in語句都可以用于循環(huán)訪問對象屬性或數(shù)組元素。下面分別使用兩種語句來訪問對象中的屬性。代碼如下所示。,,//定義一個對象lzxt,并添加屬性name和age,,var lzxt:Object = {name:“浪子嘯天“, age:30};,,//執(zhí)行遍歷操作,,for (var i:String in lzxt) {,,//輸出屬性名稱和屬性值,,trace(“for in 語句輸出:“+i + “: “ + lzxt[i]);,,},,//執(zhí)行for each遍歷操作,,for each (var k:String in lzxt) {,,//輸出屬性值,,trace(“for e

47、ach 語句輸出:“+k);,,},3.4.5,循環(huán)的嵌套,嵌套循環(huán)語句,就是在一個循環(huán)的循環(huán)體中存在另一個循環(huán)體,如此重復(fù)下去直到循環(huán)完畢為止,即為循環(huán)中的循環(huán)。以for循環(huán)為例,格式如下所示。,,for (初始化; 循環(huán)條件; 步進語句) {,,for (初始化; 循環(huán)條件; 步進語句) {,,循環(huán)執(zhí)行的語句;,,},,},3.4.6 循環(huán)流程把握語句,在ActionScript 3.0中可以使用break和continue來把握循環(huán)流程。break語句的結(jié)果是直接跳出循環(huán),不再執(zhí)行后面的語句;continue語句的結(jié)果是停頓當(dāng)前這一輪的循環(huán),直接跳到下一輪的循環(huán),而當(dāng)前輪次中conti

48、nue后面的語句也不再執(zhí)行。,,下面的兩個例子分別執(zhí)行循環(huán)變量從0遞增到10的過程,假設(shè)i等于4,分別執(zhí)行break和continue語句,看發(fā)生的狀況。代碼如下所示。,,//使用break把握循環(huán),,for (var i:int=0; i<10; i++) {,,if (i==3) {,,break;,,},,trace(“當(dāng)前數(shù)字是:“+i);,,},第,4,章 函數(shù),函數(shù)在程序設(shè)計的過程中,是一個革命性的創(chuàng)新。利用函數(shù)編程,可以避開冗長、雜亂的代碼;利用函數(shù)編程,可以重復(fù)利用代碼,提高程序效率;利用函數(shù)編程,可以便利的修改程序,提高編程效率。,,函數(shù)(Function)的準(zhǔn)確的定義為:

49、執(zhí)行特定任務(wù),并可以在程序中重用的代碼塊。ActionScript 3.0中有兩類函數(shù):“方法”和“函數(shù)閉包”。具體是將函數(shù)稱為方法還是函數(shù)閉包,取決于定義函數(shù)的上下文。,4.1,定義函數(shù),在ActionScript 3.0中有兩種定義函數(shù)的方法:一種是常用的函數(shù)語句定義法;一種是ActionScript中獨有的函數(shù)表達式定義法。具體使用哪一種方法來定義,要依據(jù)編程習(xí)慣來選擇。一般的編程人員使用函數(shù)語句定義法,對于有特殊需求的編程人員,則使用函數(shù)表達式定義法。,4.1.1,函數(shù)語句定義法,函數(shù)語句定義法是程序語言中根本類似的定義方法,使用function關(guān)鍵字來定義,其格式如下所示。,,fun

50、ction 函數(shù)名(參數(shù)1:參數(shù)類型,參數(shù)2:參數(shù)類型…):返回類型{,,//函數(shù)體,,},,代碼格式說明:,,function:定義函數(shù)使用的關(guān)鍵字。留意function關(guān)鍵字要以小寫字母開頭。,,函數(shù)名:定義函數(shù)的名稱。函數(shù)名要符合變量命名的規(guī)章,最好給函數(shù)取一個與其功能全都的名字。,,小括號:定義函數(shù)的必需的格式,小括號內(nèi)的參數(shù)和參數(shù)類型都可選。,,返回類型:定義函數(shù)的返回類型,也是可選的,要設(shè)置返回類型,冒號和返回類型必需成對消逝,而且返回類型必需是存在的類型。,,大括號:定義函數(shù)的必需格式,需要成對消逝。括起來的是函數(shù)定義的程序內(nèi)容,是調(diào)用函數(shù)時執(zhí)行的代碼。,4.1.2,函數(shù)表達式定

51、義法,函數(shù)表達式定義法有時也稱為函數(shù)字面值或匿名函數(shù)。這是一種較為繁雜的方法,在早期的ActionScript版本中廣為使用。其格式如下所示。,,var 函數(shù)名:Function=function(參數(shù)1:參數(shù)類型,參數(shù)2:參數(shù)類型…):返回類型{,,//函數(shù)體,,},,代碼格式說明:,,var:定義函數(shù)名的關(guān)鍵字,var關(guān)鍵字要以小寫字母開頭。,,函數(shù)名:定義的函數(shù)名稱。,,Function:指示定義數(shù)據(jù)類型是Function類。留意Function為數(shù)據(jù)類型,需大寫字母開頭。,,=:賦值運算符,把匿名函數(shù)賦值給定義的函數(shù)名。,,function:定義函數(shù)的關(guān)鍵字,指明定義的是函數(shù),,小括號

52、:定義函數(shù)的必需的格式,小括號內(nèi)的參數(shù)和參數(shù)類型都可選。,,返回類型:定義函數(shù)的返回類型,可選參數(shù)。,,大括號:其中為函數(shù)要執(zhí)行的代碼。,4.1.3 兩種定義方法的區(qū)分和選擇,原則上,推舉使用使用函數(shù)語句定義法。由于這種方法更加簡潔,更有助于保持嚴格模式和標(biāo)準(zhǔn)模式的全都性的。,,下面要講解的是函數(shù)語句和函數(shù)表達式定義法之間存在的區(qū)分,具體內(nèi)容如下所示。,,1.兩種方法區(qū)分,,2.兩種方法的選擇,,在兩種定義方法的選擇上,一般使用函數(shù)語句定義法。函數(shù)表達式定義函數(shù)主要用于:一是適合關(guān)注運行時行為或動態(tài)行為的編程,二是用于那些使用一次后便丟棄的函數(shù)或者向原型屬性附加的函數(shù)。函數(shù)表達式更多地用在動

53、態(tài)編程或標(biāo)準(zhǔn)模式編程中。,4.2,調(diào)用函數(shù),函數(shù)只是一個編好的程序塊,在沒有被調(diào)用之前,什么也不會發(fā)生。只有通過調(diào)用函數(shù),函數(shù)的功能才能夠?qū)崿F(xiàn),才能表達出函數(shù)的高效率。通過本節(jié)的學(xué)習(xí),讀者將把握一般的函數(shù)調(diào)用方法以及嵌套和遞歸調(diào)用函數(shù)的方法。,4.2.1,函數(shù)的一般調(diào)用,對于沒有參數(shù)的函數(shù),可以直接使用該函數(shù)的名字,并后跟一個圓括號(它被稱為“函數(shù)調(diào)用運算符”)來調(diào)用。,,下面定義一個不帶參數(shù)的函數(shù)HelloAS,并在定義之后直接調(diào)用,其代碼如下。,,function HelloAS {,,trace(“AS3.0世界歡送你!“);,,},,HelloAS;,,代碼運行后的輸出結(jié)果,如下所示。

54、,,/輸出:AS3.0世界歡送你!,4.2.2,嵌套和遞歸調(diào)用函數(shù),嵌套和遞歸調(diào)用是兩種類似函數(shù)調(diào)用方式,其本質(zhì)都是在調(diào)用函數(shù)時用一個函數(shù)就調(diào)用另一個函數(shù)。不同的是,嵌套調(diào)用是用一個函數(shù)去調(diào)用另一個函數(shù),而遞歸調(diào)用是函數(shù)調(diào)用自身函數(shù)。,,1,.嵌套調(diào)用函數(shù),,2,.遞歸調(diào)用函數(shù),4.3,函數(shù)的返回值,主調(diào)函數(shù)通過函數(shù)的調(diào)用得到一個確定的值,此值被稱為函數(shù)的返回值。利用函數(shù)的返回值,可以通過函數(shù)進展數(shù)據(jù)的處理、分析和轉(zhuǎn)換,并能最終獵取想要獲得的結(jié)果。在本節(jié)我們主要學(xué)習(xí)函數(shù)返回值的獵取方法和獵取過程中的留意事項。,4.3.1 return,語句,AS從函數(shù)中獵取返回值,使用return語句來實現(xiàn)

55、,語法格式如下:,,return 返回值,,return:函數(shù)返回值的關(guān)鍵字,必需的。,,返回值:函數(shù)中返回的數(shù)據(jù),既可以是字符串、數(shù)值等,也可以是對象,如數(shù)組、影片簡介等。,,下面定義一個求圓形面積的函數(shù),并返回圓面積的值,其代碼如下:,,function 圓面積(r:Number):Number{,,var s:Number=Math.PI*r*r,,return s,,},,trace(圓面積(5)),4.3.2,返回值類型,函數(shù)的返回類型在函數(shù)的定義中屬于可選參數(shù),假設(shè)沒有選擇,那么返回值的類型由return語句中返回值的數(shù)據(jù)類型來預(yù)備。,,下面的代碼,return語句返回一個字符型數(shù)

56、據(jù),來驗證一下返回值的類型。,,function 類型測試 {,,var a:String=“這是一個字符串“;,,return a;,,},,trace(typeof(類型測試));,,代碼運行后的輸出結(jié)果,如下所示。,,string,4.4,函數(shù)的參數(shù),函數(shù)通過參數(shù)向函數(shù)體傳遞數(shù)據(jù)和信息。ActionScript 3.0對函數(shù)的參數(shù)增加了一些新功能,同時也增加了一些限制。有大多數(shù)程序員都生疏的按值或按引用傳遞參數(shù)這一概念,也有對很多人很生疏的arguments對象和...(rest)參數(shù)。,4.4.1,傳遞參數(shù)的語法,函數(shù)中傳遞的參數(shù)都位于函數(shù)格式的括號中,語法格式如下:,,(參數(shù)1:參數(shù)

57、類型=默認值,參數(shù)2:參數(shù)類型=默認值),,下面定義一個共性化的歡送語句,對不同的姓名給出對應(yīng)的問候。代碼如下所示。,,function Welcome(username:String):void {,,trace(“歡送你!“+username);,,},,Welcome(“張三“);,,Welcome(“小明“);,,代碼運行后的輸出結(jié)果,如下所示。,,歡送你!張三,,歡送你!小明,4.4.2,傳遞參數(shù)的的兩種方法,很多編程語言中,參數(shù)的傳遞根本都是兩種類型:按值或者按引用傳遞。按值傳遞意味著將參數(shù)的值復(fù)制到局部變量中以便在函數(shù)內(nèi)使用。按引用傳遞意味著將只傳遞對參數(shù)的引用,而不傳遞實際值。

58、要了解任何一門編程語言中的函數(shù),首先必需搞清晰的問題就是參數(shù)的傳遞究竟是按值還是按引用來傳遞參數(shù)。,,在ActionScript 3.0 中,全部的參數(shù)均按引用傳遞,由于全部的值都存儲為對象?;蛿?shù)據(jù)是不變的對象,按按值還是按引用的效果一樣,通??梢钥醋魇前粗祩鬟f。按值傳遞,就是指參數(shù)被傳遞給函數(shù)后,被傳遞的變量就獨立了。假設(shè)在函數(shù)中轉(zhuǎn)變這個變量,原變量不會發(fā)生任何的變化。,4.4.3,給函數(shù)設(shè)置默認參數(shù),在ActionScript 2.0中并不支持對函數(shù)設(shè)置默認參數(shù),此為ActionScript 3.0的新功能。要給一個函數(shù)的參數(shù)設(shè)置默認值,語法格式如下:,,function(參數(shù)1:參數(shù)

59、類型=默認值,參數(shù)2:參數(shù)類型=默認值),,默認參數(shù)是可選項,可以設(shè)置默認參數(shù),也可以不設(shè)置默認參數(shù)。假設(shè)設(shè)置了默認參數(shù),則在調(diào)用函時,假設(shè)果沒有寫明參數(shù),系統(tǒng)將使用在函數(shù)定義中為該參數(shù)指定的值。,4.4.4 arguments,對象和,...(rest),參數(shù),ActionScript3.0中有兩種函數(shù)調(diào)用時檢查參數(shù)數(shù)量的方法,分別為使用arguments對象和..(rest) 參數(shù)。,,1.a(chǎn)rguments 對象,,在函數(shù)中,可以使用arguments 對象來訪問有關(guān)傳遞給該函數(shù)的參數(shù)的信息。arguments 對象是一個數(shù)組,其中按挨次保存著傳遞給函數(shù)的全部參數(shù)??梢允褂脭?shù)組的訪問方

60、式來訪問傳入的參數(shù)。它有一個length屬性記錄當(dāng)前傳入的參數(shù)數(shù)目;還有一個屬性callee供給對函數(shù)本身的引用,該引用可用于遞歸調(diào)用函數(shù)表達式。,,2....(rest)參數(shù),,...(rest)參數(shù)是ActionScript3.0引入的新參數(shù)聲明。使用該參數(shù)可指定一個自己命名的數(shù)組參數(shù)來承受任意多個以逗號分隔的參數(shù)。,第5章 大事的發(fā)送和處理,大事處理系統(tǒng)是交互式程序設(shè)計的重要根底。利用大事處理機制,可以便利的相應(yīng)用戶輸入和系統(tǒng)大事。ActionScript 3.0的大事機制基于文檔對象模型〔DOM3〕,是業(yè)界標(biāo)準(zhǔn)的大事處理體系構(gòu)造。使用機制不僅便利,而且符合標(biāo)準(zhǔn)。ActionScrip

61、t 3.0全新的大事處理機制是ActionScript編程語言中的重大改進,對ActionScript程序設(shè)計人員來說,在使用上也更加的便利和直觀。,5.1 大事處理根底,在本節(jié)將介紹大事和處理的根本概念,了解常見的大事處理任務(wù)。比照ActionScript編程語言中不同版本的大事處理機制的異同,明確ActionScript 3.0中大事處理機制具有良好的性能。,5.1.1 大事和大事處理根底學(xué)問,大事和大事處理是面對對象編程的根底。本節(jié)將介紹大事和大事處理的根底學(xué)問以及大事處理的方法和大事處理的任務(wù)。,,1.大事和大事處理根本概念,,2.ActionScript 3.0中的大事和大事處理,

62、,3.ActionScript 3.0中的大事處理任務(wù),,在ActionScript 3.0編程過程中,常見的使用大事處理的任務(wù)有:,,編寫代碼以響應(yīng)大事,,阻擋代碼響應(yīng)大事,,處理大事對象,,處理大事流,,從類中調(diào)度大事,,創(chuàng)立自定義大事類型,5.1.2 早期 ActionScript 版本中的大事處理,ActionScript 1.0使用on和onClipEvent兩個大事處理函數(shù)來處理大事。具體為:,,on大事處理函數(shù),直接放在按鈕或者影片剪輯實例上。,,onClipEvent處理函數(shù),直接放在影片剪輯實例上。,,這種方法把代碼直接夾在實例上,簡潔易于、便利直接,但是由于分散在各個不同

63、的元件之上,難以治理和維護。特殊是處理不是本人編寫的代碼,查看和找尋會鋪張?zhí)嗟恼滟F時間。,,在ActionScript2.0中對大事處理進展了改進,增加了一些大事處理機制,具體為:,,回調(diào)函數(shù)大事:onload、oninit、onComplete等。,,大事偵聽器:addListener、addEventListener。,5.1.3 ActionScript 3.0中的大事處理,在ActionScript 3.0引入了基于文檔對象模型〔DOM3〕唯一的一種大事處理模式,取代了以前各版本中存在的眾多的大事處理機制。在ActionScript3.0中值存在一種大事處理模型,雖然會對一些老版本

64、的用戶和一些非開發(fā)者造成確定的麻煩,但更加清晰,更加標(biāo)準(zhǔn),更符合面對對象開發(fā)的需要。,,比照ActionScript 2.0,ActionScript 3.0的大事處理體系具有以下幾個新特點:,,在ActionScript 3.0中,只能使用addEventListener注冊偵聽器。,,在ActionScript 3.0中,可以對屬于大事流一局部的任何對象調(diào)用addEventListener方法。,,在ActionScript 3.0中,只有函數(shù)或方法可以是大事偵聽器。,5.2 Event,類,在ActionScript 3.0的大事處理系統(tǒng)中,大事對象主要有兩個作用:一是將大事信息儲存在

65、一組屬性中,來代表具體大事;二是包含一組方法,用于操作大事對象和影響大事處理系統(tǒng)的行為。,,在ActionScript 3.0中,在Flash播放器的應(yīng)用程序接口中,有一個Event類,作為全部大事對象的基類,也就是說,程序中所發(fā)生的大事都必需是Event類或者其子類的實例。,5.2.1,了解,Event,類屬性,Event類公開的屬性有:type、cancelable、target、currentTarget、eventphase、bubles。,,1.type屬性:每個大事對象都有關(guān)聯(lián)的大事類型。大事類型存儲以字符串的形式存儲在Event.type屬性中。利用大事類型,可以區(qū)分不同類型的大

66、事。,,2.cancelable屬性:大事的默認行為是否可以被阻擋由布爾值表示,并存儲在Event.cancelable屬性中。此屬性時一個布爾值,默認為flase。這個屬性一般是和preventDefault方法結(jié)合在一起使用的。,,3.target屬性:target屬性用于存儲對大事目標(biāo)的引用。,,4.其它屬性:currentTarget、eventphase和bubbles這三個屬性都是和ActionScript3的大事流機制有關(guān),在尋常用到的不多。,5.2.2,了解,Event,類的方法,Event類的方法有7種:clone、toString、stopPropogation、stopImmediatePropogation、preventDefault、isDefaultPrevented和formatToString。這些方法的用途如下:,,Event.clone方法用于賦值Event子類實例,返回Event對象原始實例的副本。當(dāng)需要自定義Event子類時,就必需要繼承Event.clone方法,用于賦值自定義類的屬性。另外還要加上新的屬性,否則在偵聽器重寫調(diào)用時,這些屬性的

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!