Flash AS3.0動畫程序設(shè)計案例教程課件第2章_第1頁
Flash AS3.0動畫程序設(shè)計案例教程課件第2章_第2頁
Flash AS3.0動畫程序設(shè)計案例教程課件第2章_第3頁
Flash AS3.0動畫程序設(shè)計案例教程課件第2章_第4頁
Flash AS3.0動畫程序設(shè)計案例教程課件第2章_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第2章 AS3.0基本語法FlashAS3.0

常量和變量數(shù)據(jù)類型及相互轉(zhuǎn)換語言要素及語法規(guī)則運算符與表達(dá)式數(shù)組及字符串程序結(jié)構(gòu)及函數(shù)2.1常量與變量2.1.1常量

常量指的是在程序運行過程中始終保持不變的數(shù)據(jù)。表示常量的方法有兩種:字面常量和常量聲明。

字面常量指在程序中直接書寫數(shù)據(jù)的內(nèi)容,如trace(“helloworld!”),其中雙引號括起的字符串即為字面常量。再比如,y=x+3,這里的數(shù)值3為一個字面常量。下面列出了可以直接包含在代碼中的各種字面值類型:數(shù)字(包括int和uint),如42、-100和93.5;

布爾值,即true和false;

使用單引號或雙引號的字符串,其形式為“Leormipsum”;

特珠類型的空值,即null和undefined;

使用方括號的數(shù)組字面值,如[“Monday”,”Wednesday”,”Friday”];

使用大括號語法定義的通用對象,如{name:”Alita”,likeSpaghetti:true}。

常量聲明指的是使用const定義一個標(biāo)識符,該標(biāo)識符即為常量名,比如:“constCONNAME:int”,其中CONNAME為常量名。一般在定義時,需進(jìn)行常量的初始化操作,即給出其值。如“constCONNAME:int=5”,初始化后在程序中不能再更改其值。一般約定,常量名都用大寫字母表示,以區(qū)別其它標(biāo)識符。2.1.2變量

變量可用來存儲程序中使用的值。在AS3.0中聲明變量的格式如下:

var變量名:數(shù)據(jù)類型;

var變量名:數(shù)據(jù)類型=值;變量命名即標(biāo)識符,AS3.0將標(biāo)識符分為編程用標(biāo)識符和設(shè)計用標(biāo)識符。編程用標(biāo)識符可分為常量、變量、函數(shù)名、對象名等;設(shè)計用標(biāo)識符分為實例名、連接類名。通用命名規(guī)則包括26個英文字母、數(shù)字、美元符號($)、下劃線(_),而且第一個字符不能是數(shù)字。

(一)變量的命名規(guī)則在編程實踐中,變量命名應(yīng)遵循以下規(guī)則:盡量使用有含義的英文單詞作為變量名。變量名采用駱駝命名法,即混合使用大小寫,第一個單詞的首字母小寫,第二個以后的單詞首字母大寫,其它均為小寫,如highLevelFlag變量。變量命名符合最小長度最大信息量原則。盡量避免變量名中出現(xiàn)數(shù)字編號。(二)AS3.0中使用的保留字

AS3.0中定義的標(biāo)識符是區(qū)分大小寫的:如myname和myName是完全不同的兩個變量。另外,不能使用保留字,如教材中的表2-1、表2-2、表2-3所示的詞匯關(guān)鍵字。(三)FlashProfessional中的元件變量在FlashProfessional中,還有另外一種變量聲明方法。在將一個影片剪輯元件、按鈕元件或文本字段放置在舞臺上時,可以在屬性檢查器中為它指定一個實例名稱。FlashProfessional在后臺創(chuàng)建與實例同名的變量。可在ActionScript代碼中使用該名稱表示該舞臺項。例如,假設(shè)舞臺上有一個影片剪輯元件,并為其指定了實例名稱rocketShip。只要在ActionScript代碼中使用變量rocketShip,實際上就是在操作該影片剪輯。

(四)變量的作用域變量的作用域是指可在其中通過詞匯引用來訪問變量的代碼區(qū)域。全局變量是指在代碼的所有區(qū)域中定義的變量,而局部變量是指僅在代碼的某個部分定義的變量。在ActionScript3.0中,始終為變量分配聲明它們的函數(shù)或類的作用域。全局變量是在任何函數(shù)或類定義的外部定義的變量。可以通過在函數(shù)定義內(nèi)部聲明變量來將它聲明為局部變量。可定義局部變量的最小代碼區(qū)域就是函數(shù)定義。在函數(shù)內(nèi)部聲明的局部變量僅存在于該函數(shù)中。2.2數(shù)據(jù)與數(shù)據(jù)類型

程序中的數(shù)據(jù)指的是用于數(shù)學(xué)計算的整數(shù)、小數(shù),用于文本存儲的字符串,用于邏輯運算的真假值等。數(shù)據(jù)類型可以確定程序中變量的種類以方便組成各種表達(dá)式。

2.2.1數(shù)據(jù)類型在ActionScript中,可以將很多數(shù)據(jù)類型用作所創(chuàng)建的變量的數(shù)據(jù)類型。其中的某些數(shù)據(jù)類型可以看作是“簡單”或“基本”數(shù)據(jù)類型:

string:一個文本值,例如,一個名稱或書中某一章的文字;

numeric:對于numeric型數(shù)據(jù),ActionScript3.0包含三種特定的數(shù)據(jù)類型:▲number:任何數(shù)值,包括有小數(shù)部分或沒有小數(shù)部分的值;▲int:一個整數(shù)(不帶小數(shù)部分的整數(shù));▲uint:一個“無符號”整數(shù),即不能為負(fù)數(shù)的整數(shù)。

Boolean:一個true或false值,例如開關(guān)是否開啟或兩個值是否相等。

ActionScript中定義的大部分?jǐn)?shù)據(jù)類型都可以被描述為復(fù)雜數(shù)據(jù)類型,因為它們表示組合在一起的一組值。例如,數(shù)據(jù)類型為Date的變量表示單個值,即時間中的某個片刻。然而,該日期值實際上表示為幾個值:年、月、日、時、分、秒等等,它們都是單獨的數(shù)字。

大部分內(nèi)置數(shù)據(jù)類型以及程序員定義的數(shù)據(jù)類型都是復(fù)雜數(shù)據(jù)類型。下面的是一些復(fù)雜數(shù)據(jù)類型:

MovieClip:影片剪輯元件。

TextField:動態(tài)文本字段或輸入文本字段。

SimpleButton:按鈕元件。

Date:有關(guān)時間中的某個片刻的信息(日期和時間)。

用作數(shù)據(jù)類型的同義詞的兩個概念是類和對象。

“類”僅僅是數(shù)據(jù)類型的定義,就像用于該數(shù)據(jù)類型的所有對象的模板,例如“所有Example數(shù)據(jù)類型的變量都擁有這些特性:A、B和C”。

“對象”僅僅是類的一個實際的實例;可將一個數(shù)據(jù)類型為MovieClip的變量描述為一個MovieClip對象。下面幾條敘述雖然表達(dá)的方式不同,但意思是相同的:變量myVariable的數(shù)據(jù)類型是Number;變量myVariable是一個Number實例;變量myVariable是一個Number對象;變量myVariable是Number類的一個實例。2.2.2類型轉(zhuǎn)換(一)隱式轉(zhuǎn)換在運行時,隱式轉(zhuǎn)換會發(fā)生在許多上下文環(huán)境中:在賦值語句中。在將值作為函數(shù)的參數(shù)傳遞時。在從函數(shù)中返回值時。在使用某些運算符(如加法運算符(+))的表達(dá)式中。(二)顯式轉(zhuǎn)換在嚴(yán)格模式下進(jìn)行編譯時,使用顯式轉(zhuǎn)換會非常有用,因為有時可能不希望因類型不匹配而生成編譯時錯誤。當(dāng)知道強(qiáng)制功能會在運行時正確轉(zhuǎn)換值時,可能就屬于這種情況。例如,在使用從表單接收的數(shù)據(jù)時,可能希望依賴強(qiáng)制功能將某些字符串值轉(zhuǎn)換為數(shù)值。

varquantityField:String="3";varquantity:int=int(quantityField);2.2.3數(shù)組一個數(shù)組中的所有元素都是同一數(shù)據(jù)類型的數(shù)據(jù)。AS3.0中的數(shù)組分為數(shù)字索引數(shù)組和字符串索引數(shù)組兩類。數(shù)組類Array是AS3.0中內(nèi)置的一個類,聲明數(shù)組的方法有幾種,比如:varmyArray:Array=newArray(5);varmyArray:Array=[1,2,3,4,5];

訪問數(shù)組中的元素使用方括號運算符,比如:trace(“myArray[2]”);方括號中標(biāo)明的是數(shù)組的下標(biāo),為從0開始的整數(shù)。字符串索引數(shù)組不使用數(shù)字作為元素下標(biāo),訪問這種數(shù)組中的元素時方括號內(nèi)需要一個字符串(其實是屬性)。本質(zhì)上,就是一個Object類型對象。比如,可以使用直接初始化對象的方式定義字符串索引數(shù)組:varmonitorInfo:Object={type:”FlatPanel”,resolution:”1600*1200”};trace(monitorInfo[“type”],monitorInfo[“resolution”]);varmonitorInfo:Object=newObject();monitorInfo[“aspectratio”]=“16:10”;

2.3運算符與表達(dá)式2.3.1運算符與表達(dá)式

運算符是一種特殊的函數(shù),它們連同一個或多個操作數(shù)并返回相應(yīng)的值形成表達(dá)式。操作數(shù)是運算符用作輸入的值(通常為字面值、變量或其它表達(dá)式)。運算符可以是一元、二元或三元的。一元運算符用1個操作數(shù);二元運算符用2個操作數(shù);三元運算符用3個操作數(shù)。2.3.2運算符的優(yōu)先級和結(jié)合律運算符的優(yōu)先級和結(jié)合律決定了處理運算符的順序。

ActionScript定義了一個默認(rèn)的運算符優(yōu)先級,可以使用小括號運算符()來改變它。分類組合運算符主要[]{x:y}()f(x)newx.yx[y]<></>@::..后綴x++x--一元++x--x+-~!deletetypeofvoid乘性*/%加性+-按位移位<<>>>>>關(guān)系<><=>=asininstanceofis等于==!====!==按位AND、XOR、OR&^|邏輯AND、OR、NOT&&||!條件?:賦值=*=/=%=+=-=<<=>>=>>>=&=^=|=逗號,2.3.3主要運算符

主要運算符包括那些用來創(chuàng)建Array和Object字面值、對表達(dá)式進(jìn)行分組、調(diào)用函數(shù)、實例化類實例以及訪問屬性的運算符。

運算符執(zhí)行的運算[]初始化數(shù)組{x:y}初始化對象()對表達(dá)式進(jìn)行分組f(x)調(diào)用函數(shù)new調(diào)用構(gòu)造函數(shù)x.yx[y]訪問屬性<></>初始化XMLList對象(E4X)@訪問屬性(E4X)::限定名稱(E4X)..訪問子級XML元素(E4X)2.3.4幾個典型的一元運算符和關(guān)系運算符

一元運算符只有一個操作數(shù),這意味著它們在表達(dá)式中出現(xiàn)在操作數(shù)的前面。關(guān)系運算符涉及兩個操作數(shù),它比較兩個操作數(shù)的值,然后返回一個布爾值。運算符執(zhí)行的運算一元運算符delete刪除屬性typeof返回類型信息void返回未定義值關(guān)系運算符as檢查數(shù)據(jù)類型in檢查對象屬性instanceof檢查原型類is檢查數(shù)據(jù)類型2.4案例——類型轉(zhuǎn)換程序2.4.1案例任務(wù)描述

本案例設(shè)計一個程序,完成數(shù)據(jù)類型的轉(zhuǎn)換演示,將數(shù)據(jù)類型從一種類型轉(zhuǎn)換為另一種類型,即從數(shù)組轉(zhuǎn)為列表、從字符串轉(zhuǎn)為數(shù)組、從數(shù)組轉(zhuǎn)為字符串、從字符串轉(zhuǎn)為整數(shù)、從字符串轉(zhuǎn)為浮點數(shù)等。2.4.2操作流程程序功能演示;學(xué)生動手練習(xí)。2.4.3案例小結(jié)本案例通過上機(jī)運行,應(yīng)該對程序的變量有所認(rèn)識,ActionScript以變量的使用為基礎(chǔ),而變量從本質(zhì)上說就是程序運行過程中保存數(shù)據(jù)的容器。每個變量都有各自的數(shù)據(jù)類型,數(shù)據(jù)類型定義了存儲在變量中的數(shù)據(jù)的類型。這種機(jī)制可以幫助編譯器和FlashPlayer捕獲代碼中的錯誤。在運算時,使用數(shù)據(jù)類型的顯示轉(zhuǎn)換有助于得到正確的運算結(jié)果。在傳統(tǒng)的程序語言中字符串和數(shù)組是真正的數(shù)據(jù)類型,而AS3.0中的String和Array是面向?qū)ο蟪绦蛘Z言中的類。2.5程序結(jié)構(gòu)與函數(shù)2.5.1條件語句

AS3.0提供了三個可用來控制程序流的基本條件語句。(一)if..else語句if(x>20){trace("xis>20");}else{trace("xis<=20");}

(二)if..elseif語句if(x>20){trace("xis>20");}elseif(x<0){trace("xisnegative");}

(三)switch語句varsomeDate:Date=newDate();vardayNum:uint=someDate.getDay();switch(dayNum){case0:trace("Sunday");break;case1:trace("Monday");break;case2:trace("Tuesday");break;case3:trace("Wednesday");break;case4:trace("Thursday");break;case5:trace("Friday");break;case6:trace("Saturday");break;default:trace("Outofrange");break;}

2.5.2循環(huán)語句循環(huán)語句允許使用一系列值或變量來反復(fù)執(zhí)行一個特定的代碼塊。建議始終用大括號({})括起代碼塊。AS3.0提供了五個可用來控制程序流的基本循環(huán)語句。(一)for語句vari:int;for(i=0;i<5;i++){trace(i);}(二)for..in語句varmyObj:Object={x:20,y:30};for(vari:StringinmyObj){trace(i+":"+myObj[i]);}(三)foreach..in語句varmyObj:Object={x:20,y:30};foreach(varnuminmyObj){trace(num);}(四)while語句vari:int=0;while(i<5){trace(i);i++;}(五)do..while語句vari:int=5;do{trace(i);i++;}while(i<5);

2.5.3函數(shù)一般講,函數(shù)指在程序中可能重復(fù)使用的代碼塊。函數(shù)通過參數(shù)接收外部數(shù)據(jù),也可以返回一個值。(一)函數(shù)定義及使用函數(shù)聲明的語法為:Function函數(shù)名(參數(shù)列表):返回值類型{//函數(shù)的執(zhí)行代碼(函數(shù)體)}

函數(shù)調(diào)用的語法為:函數(shù)名(參數(shù)列表)(二)函數(shù)作為對象

ActionScript3.0中的函數(shù)是對象。當(dāng)創(chuàng)建函數(shù)時,就是在創(chuàng)建對象,該對象不僅可以作為參數(shù)傳遞給另一個函數(shù),而且還可以有附加的屬性和方法。作為參數(shù)傳遞給另一個函數(shù)的函數(shù)是按引用(而不是按值)傳遞的。在將某個函數(shù)作為參數(shù)傳遞時,只能使用標(biāo)識符,而不能使用在調(diào)用方法時所用的小括號運算符。例如,下面的代碼將名為clickListener()的函數(shù)作為參數(shù)傳遞給addEventListener()方法:

addEventListener(MouseEvent.CLICK,clickListener);

(三)函數(shù)作用域函數(shù)的作用域不但決定了可以在程序中的什么位置調(diào)用函數(shù),而且還決定了函數(shù)可以訪問哪些定義。適用于變量標(biāo)識符的作用域規(guī)則同樣也適用于函數(shù)標(biāo)識符。在全局作用域中聲明的函數(shù)在整個代碼中都可用。2.5.4注釋(一)單行注釋在一行中的任意位置放置兩個斜杠來指定單行注釋。//這是注釋行,執(zhí)行時被計算機(jī)忽略.varage:Number=10;//給age變量初值10

(二)多行注釋多行注釋包括一個開始注釋標(biāo)記(/*)、注釋內(nèi)容和一個結(jié)束注釋標(biāo)記(*/)。/*Thisisalongdescriptionexplainingwhataparticularfunctionisusedfororexplainingasectionofcode.Inanycase,thecomputerignoresthe

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論